2016-03-30 25 views
1

こんにちは、私はExcelファイルとC#で作業してみてください。今私はxlsxファイルで作業することができ、それを開くことができます。しかし、私はそれをxlsmファイルに変更すると、私はいつもファイルが見つからないと私には何の手がかりもないという例外が発生します。ここに私のコードです:ここC#読み込み/書き込み.xlsmファイル

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using DocumentFormat.OpenXml.Packaging; 
using DocumentFormat.OpenXml.Spreadsheet; 
using Excel = Microsoft.Office.Interop.Excel; 
using Microsoft.Office.Interop; 
using System.Reflection; 
using System.Windows.Forms; 
using System.Diagnostics; 

namespace WorkWithExcel 
{ 
    class reportingController 
    { 

     public void createExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 

      Excel.Workbook oWB = oXL.Workbooks.Add(Missing.Value); 

      oWB.SaveAs(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      oWB.Close(true, Missing.Value, Missing.Value); 
     } 

     public void openExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 

      Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      //read Excel sheets 
      foreach (Excel.Worksheet ws in oWB.Sheets) 
      { 
       MessageBox.Show(ws.Name); 
      } 

      //save as separate copy 
      oWB.SaveAs(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout_neu.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      oWB.Close(true, Missing.Value, Missing.Value); 
     } 

     public void writeExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 
      Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 
      Excel.Worksheet oWS = oWB.Worksheets[1] as Excel.Worksheet; 

      //rename the Sheet name 
      oWS.Name = "Excel Sheet"; 

      for (int i = 1; i < 10; i++) 
      { 
       oWS.Cells[i, 1] = "Cell " + i.ToString(); 
      } 
      oWB.SaveAs(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      Process.Start(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm "); 
     } 

     public void readExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 

      Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      Excel.Worksheet oWS = oWB.Worksheets[1] as Excel.Worksheet; 

      Excel.Range range; 

      range = oWS.UsedRange; 

      //read first row, first cell value 
      MessageBox.Show((string)(range.Cells[1, 1] as Excel.Range).Value2); 
     } 

    } 
} 

そしてexeptionです:

An exception of type 'System.Runtime.InteropServices.COMException' occurred in WorkWithExcel.exe . 

Additional information: ' C : \ Users \ AAN \ Documents \ Visual Studio 2015 \ Projects \ Work With Excel \ Work With Excel \ bin \ DebugPROJEKTSTATUS_GESAMT_neues_Layout.xlsm ' was not found. Check the spelling of the filename , and verify that the file location is correct . 

しかし、ファイルがあります。

.xlsxファイルでは動作しますが、xlsmでは動作しません。だから、どんな助けも素晴らしいだろう。だから私はgoogleといくつかのブログを試みたが、何も私のために働いた。 Mabeyは私が得ることがない何かがある....

私の英語のためにおかげで申し訳ありません。

Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "PROJEKTSTATUS_GESAMT_neues_Layout.xlsm"... 

+0

一定の値を使用してください。 – Sybren

+1

これは、Application.StartupPathとファイル名の間に\がないことと同じくらい簡単ですか?例外内のパスに\がありません。 – DoctorMick

+0

@DoctorMickよくthxこれは私が気づかなかった何かである.....そしてそれは働く.... – opelhatza

答えて

0

あなたのパスが

"C : \ Users \ AAN \ Documents \ Visual Studio 2015 \ Projects \ Work With Excel \ Work With Excel \ bin \ Debug \ PROJEKTSTATUS_GESAMT_neues_Layout.xlsm" 

なく

"C : \ Users \ AAN \ Documents \ Visual Studio 2015 \ Projects \ Work With Excel \ Work With Excel \ bin \ DebugPROJEKTSTATUS_GESAMT_neues_Layout.xlsm" 

Debug

修正した後、この行を\を追加する必要がありますこれに:

Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm"... 

以上、あなたのポストへの完全な例外メッセージを追加

+0

よくdidntがそれに気づいたが、助けに感謝 – opelhatza

関連する問題