2014-10-16 1 views
-1

Microsoft Excel 2010에서 생성되는 매크로에 일부 데이터를 쓰려고했습니다. 문제는 코드가 데이터를 쓰지 않고 오류가 발생하지 않기 때문입니다. 누구든지 내 코드에 어떤 문제가 있다고 말할 수 있습니까?xlsm에 대한 쓰기가 작동하지 않습니다. #

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'가 필요한 것을 제외하면 그리 많지 않다. –

+0

올바른 파일을 열었습니까? 오류가 없습니다. –

답변

0

당신은 상호 운용성 객체에 전체 .xlsm 파일을 전달하는, 첫 번째 상자의 파일 스트림 객체는 엑셀을 열고 수정할 것을에 정확히 같은 이름으로 통합 문서 개체를 만들고 해당 개체를 사용합니다.

오류 : 1) 아니오 FileStream 객체가 .xlsm 파일 2를 열거 할 수는) 당신은 당신이 당신의 필수 작업 후 ObjWorkBook.Write (FS)를 완료하면하여 FileStream (3)를 통과해야 파일 경로를) 전달하는; 모든 객체를 닫는다.

+0

음, 코드가 여기에서 작동하므로 왜 파일 스트림을 사용하고 싶은지 모르겠습니다. –

관련 문제