2017-01-12 1 views
1

Ceci est un code qui pourrait créer uniquement créer un fichier xls. Mais je veux créer un fichier xlsx (Excel); comment puis-je faire cela à partir de ce code ou bien puis-je avoir un autre code que je pourrais utiliser pour créer des fichiers xlsx.Je veux créer un fichier xlsx (Excel) à partir de 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

double possible de [Exportation à l'aide .xlsx Microsoft.Office.Interop.Excel SaveAs Error] (http://stackoverflow.com/questions/9769703/exporting -to-xlsx-en utilisant-microsoft-office-interop-excel-saveas-erreur) –

+0

Avez-vous jeté un oeil à https://www.nuget.org/packages/GemBox.Spreadsheet? C'est un composant qui n'exige pas Excel et il y a une licence libre pour les petites feuilles. –

Répondre

6

Veuillez essayer ci-dessous le code mis à jour.

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

je l'ai essayé une fois qu'il dosent travail il seulement enregistrer un fichier xlsx, mais ne peut pas l'ouvrir –

+0

S'il vous plaît essayer mon code mis à jour.Il fonctionne correctement.Il va enregistrer exceller dans ** XLSX ** et l'ouvrira aussi. –

0

Regardez EasyXLS. C'est une bibliothèque qui crée des fichiers 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"); 

Voir plus:
http://www.easyxls.com/manual/basics/create-excel-file.html