2014-10-16 57 views
-1

我試圖寫一些數據的宏啓用Excel的Microsoft Excel 2010創建。 問題是我的代碼不寫任何數據,也沒有錯誤。任何人都可以告訴我我的代碼有什麼問題嗎?寫入xlsm不工作在c#

private void button2_Click_1(object sender, EventArgs e) 
     { 
      string excelFilename; 
      excelFilename = "D:\\TestPivot1.xlsm"; 
      Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application(); 
      Workbook ObjWorkBook; 
      Worksheet ObjWorkSheet; 

      ObjWorkBook = ObjExcel.Workbooks.Open(excelFilename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
      ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[2]; 
      int i; 
      for(i=1;i<10;i++){ 
       ObjWorkSheet.Cells[i, 1] = "ID"; 
       ObjWorkSheet.Cells[i, 2] = "NAME"; 
       ObjWorkSheet.Cells[i, 3] = "GENDER"; 
       ObjWorkSheet.Cells[i, 4] = "DEPT"; 
       ObjWorkSheet.Cells[i, 5] = "SALARY"; 
       ObjWorkSheet.Cells[i, 6] = "DOH"; 
       ObjWorkSheet.Cells[i, 7] = "LOCATION"; 
      } 
      ObjWorkBook.SaveAs("D:\\TestPivot2.xlsm", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, 
     Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, 
     Missing.Value, Missing.Value, Missing.Value, 
     Missing.Value, Missing.Value);    
     } 
+1

並不多,除了需要'Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbookMacroEnabled'。 – 2014-10-16 12:37:37

+0

你確定你打開了正確的文件,並且確實沒有錯誤嗎? – 2014-10-16 12:38:31

回答

0

你傳入整個.XLSM文件的互操作對象,第一板條箱文件流對象,然後使用該對象來打開Excel,然後創建工作簿對象,具有完全相同的,你要修改的相同的名稱。

錯誤:1)無FILESTREAM對象打開.XLSM文件 2)你逝去的文件路徑,你應該傳遞的FileStream 3)當你與你所需要的操作,然後ObjWorkBook.Write(FS)完成的;然後關閉所有對象

+0

那麼,代碼在這裏工作,所以我不知道你爲什麼要使用文件流。 – 2014-10-16 12:42:12