2017-01-12 4 views
1

これは、xlsファイルを作成できるコードです。しかし、私はxlsx(Excel)ファイルを作成したいと思います。どうすればこのコードから行うことができますか、そうでなければ、xlsxファイルを作成するために使用できる別のコードを用意することができます。私はxlsx(Excel)ファイルをCから作成したいと思っています#

using Excel = Microsoft.Office.Interop.Excel; 
using System.Runtime.InteropServices; 


Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 

      if (xlApp == null) 
      { 
       MessageBox.Show("Excel is not properly installed!!"); 
       return; 
      } 


      Excel.Workbook xlWorkBook; 
      Excel.Worksheet xlWorkSheet; 
      object misValue = System.Reflection.Missing.Value; 

      xlWorkBook = xlApp.Workbooks.Add(misValue); 
      xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

      xlWorkSheet.Cells[1, 1] = "ID"; 
      xlWorkSheet.Cells[1, 2] = "Name"; 
      xlWorkSheet.Cells[2, 1] = "1"; 
      xlWorkSheet.Cells[2, 2] = "One"; 
      xlWorkSheet.Cells[3, 1] = "2"; 
      xlWorkSheet.Cells[3, 2] = "Two"; 



      xlWorkBook.SaveAs("d:\\vdfgdfg.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
      xlWorkBook.Close(true, misValue, misValue); 
      xlApp.Quit(); 

      Marshal.ReleaseComObject(xlWorkSheet); 
      Marshal.ReleaseComObject(xlWorkBook); 
      Marshal.ReleaseComObject(xlApp); 

      MessageBox.Show("Excel file created , you can find the file d:\\csharp-Excel.xls"); 
     } 
+0

可能な重複http://stackoverflow.com/questions/9769703/exporting -to-xlsx-using-microsoft-office-interop-excel-saveas-error) –

+0

あなたはhttps://www.nuget.org/packages/GemBox.Spreadsheetを見ましたか?それは、Excelを必要とせず、小さなシートのための無料ライセンスがあるコンポーネントです。 –

答えて

6

下記のコードを更新してください。

public void CreateExcel() 
    { 
     Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 

     if (xlApp == null) 
     { 
      MessageBox.Show("Excel is not properly installed!!"); 
      return; 
     } 


     Microsoft.Office.Interop.Excel.Workbook xlWorkBook; 
     Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; 
     object misValue = System.Reflection.Missing.Value; 

     xlWorkBook = xlApp.Workbooks.Add(misValue); 
     xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

     xlWorkSheet.Cells[1, 1] = "ID"; 
     xlWorkSheet.Cells[1, 2] = "Name"; 
     xlWorkSheet.Cells[2, 1] = "1"; 
     xlWorkSheet.Cells[2, 2] = "One"; 
     xlWorkSheet.Cells[3, 1] = "2"; 
     xlWorkSheet.Cells[3, 2] = "Two"; 

        //Here saving the file in xlsx 
       xlWorkBook.SaveAs("d:\\vdfgdfg.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, 
       misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 


     xlWorkBook.Close(true, misValue, misValue); 
     xlApp.Quit(); 

     Marshal.ReleaseComObject(xlWorkSheet); 
     Marshal.ReleaseComObject(xlWorkBook); 
     Marshal.ReleaseComObject(xlApp); 

     MessageBox.Show("Excel file created , you can find the file d:\\csharp-Excel.xlsx"); 
    } 
+0

私はそれを試してみましたが、xlsxファイルしか保存できませんでした。 –

+0

私の更新されたコードを試してください。正しく動作しています。** XLSX **でExcelを保存して開きます。 –

0

EasyXLSを参照してください。 xlsxファイルを作成するライブラリです。

ExcelDocument workbook = new ExcelDocument(1); 

    // Set the sheet name 
    workbook.easy_getSheetAt(0).setSheetName("Sheet1"); 

    // Add data 
    ExcelTable xlsTable = ((ExcelWorksheet)workbook.easy_getSheetAt(0)).easy_getExcelTable(); 
    xlsTable.easy_getCell(0, 0).setValue("ID"); 
    xlsTable.easy_getCell(0, 1).setValue("Name"); 
    xlsTable.easy_getCell(1, 0).setValue("1"); 
    xlsTable.easy_getCell(1, 1).setValue("One"); 
    xlsTable.easy_getCell(2, 0).setValue("2"); 
    xlsTable.easy_getCell(2, 1).setValue("Two"); 

    // Create Excel file 
    workbook.easy_WriteXLSXFile("d:\\vdfgdfg.xlsx"); 

がで詳細を参照してください。([Microsoft.Office.Interop.Excel名前を付けて保存エラーを使用しての.xlsxへのエクスポート]の
http://www.easyxls.com/manual/basics/create-excel-file.html

関連する問題