none
C# export excel.xlsx 2010 RRS feed

  • Question

  • Bonjours à tous, 

    je doit exporter des données dans un fichier excel .xlsx de 2010.

    j'ai plusieurs version avec chacune des bug différent :

    1er version:

    Microsoft.Office.Interop.Excel.Application appli = null;
            Microsoft.Office.Interop.Excel._Workbook classeur = null;
            Microsoft.Office.Interop.Excel._Worksheet Feuil1 = null;
            public Microsoft.Office.Interop.Excel.Range workSheet_range = null;
            object M = System.Reflection.Missing.Value;
    
    //btn sauvegarder
    
    try
                     {
                         //appli = new Microsoft.Office.Interop.Excel.Application();
                         appli = new Excel.Application();
                         appli.Visible = true;
    
                         //---------- création du classeur ---------
                         //classeur = (Microsoft.Office.Interop.Excel._Workbook)(appli.Workbooks.Open(@"C:\Users\...\test.xlsx"));
                         classeur = (Excel._Workbook)(appli.Workbooks.Open(@"C:\Users\...\test.xlsx"));
    
    
                         //------ activer la feuille ----------
                         //Feuil1 = (Microsoft.Office.Interop.Excel.Worksheet)classeur.ActiveSheet;
                         Feuil1 = classeur.Sheets.Add() as Excel.Worksheet;
    
                         //Remplir les en-têtes
                         //Feuil1.Name = "Entete Quitance";
                        // Feuil1.Cells[i, 1] = "Nom " + i;
                        // Feuil1.Cells[i, 2] = "Prénom " + i;
                         // Feuil1.Cells[i, 3] = "Age " + i;
                         Feuil1.Cells[i, 1] = "ok" + i;
    
                         //----- Auto-Enregistrement ---------------
                         classeur.Close(true, M, M); // M représenter "Missing Value"
                         //classeur.SaveAs(@"C:\Users\...\test.xlsx", M, M);
                     }
                     catch (Exception ex) { MessageBox.Show("erruer est: " + ex.Message); }
                     finally
                     {
                         //----- Quitter ------
                         Feuil1 = null;
                         classeur = null;
                         appli.Quit();
                         appli = null;
                     }

    ici le problème est que cela écrit bien, mais efface les cellules du dessus.

    2eme version :

    // librairie NPOI
    
    //btn sauvegarder
    
    FileStream fs = File.Create(@"C:\Users\...\test.xlsx");
    
    IWorkbook temp = new HSSFWorkbook();
    
    ISheet sheet = temp.CreateSheet("Feuil1");
    
    IRow dataRow = sheet.CreateRow(4);
    
    dataRow.CreateCell(0).SetCellValue(77);
    
    sheet.ForceFormulaRecalculation = true;
    
    MemoryStream ms = new MemoryStream();
    
    temp.Write(ms);
    
    ms.Close();

    ici le probleme est que le fichier test.xslx devient corrompu.


    • Modifié sREVOLVER mercredi 21 août 2013 14:08
    mercredi 21 août 2013 14:08

Réponses

  • Je vous remercie pour votre aide, j'ai réussi a régler les problèmes que j'avais.

    En effet, cela créer une nouvel feuille a chaque click, je n'avais pas vue sur le moment. j'ai réussi à régler grâce à cette ligne de code :

    Feuil1 = classeur.ActiveSheet as Excel.Worksheet;



    • Modifié sREVOLVER vendredi 23 août 2013 08:00
    • Marqué comme réponse Aurel Bera vendredi 23 août 2013 08:03
    vendredi 23 août 2013 07:59

Toutes les réponses