Comment écrire Excel en l'ouvrant par programme avec la DLL Microsoft.Office.Interop.Excel?

StackOverflow https://stackoverflow.com/questions/1648125

  •  22-07-2019
  •  | 
  •  

Question

Je souhaite utiliser la DLL Microsoft.Office.Interop.Excel pour écrire les données dans une feuille Excel. J'ai un code:

if (System.IO.File.Exists(strFileName))
{
    System.IO.File.SetAttributes(strFileName, FileAttributes.Normal);
    System.IO.File.Delete(strFileName);
}

// Open an instance of excel. Create a new workbook.
// A workbook by default has three sheets, so if you just want 
//a single one, delete sheet 2 and 3

Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Excel._Workbook xlWB = (Excel._Workbook)xlApp.Workbooks.Add(Missing.Value);

Excel._Worksheet xlSheet = (Excel._Worksheet)xlWB.Sheets[1];
((Excel._Worksheet)xlWB.Sheets[2]).Delete();
((Excel._Worksheet)xlWB.Sheets[2]).Delete();

xlSheet.Name = strSheetName;

// Write a value into A1
xlSheet.Cells[2, 1] = "Tags";
xlSheet.Cells[2, 2] = "Leak Test";
xlSheet.Cells[2, 3] = "FIR";
xlSheet.Cells[2, 4] = "SOP";

xlWB.SaveAs(strFileName, Missing.Value, Missing.Value, Missing.Value, 
Missing.Value,Missing.Value, 
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, 
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
xlApp.Quit();

// Release the COM object, set the Excel variables to Null, and tell the 
//Garbage Collector to do its thing
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWB);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);

xlSheet = null;
xlWB = null;
xlApp = null;

Maintenant, je veux ouvrir le fichier Excel existant à partir du chemin d’accès & amp; puis mettez les quelques données dans la feuille Excel que nous nommons fournie & amp; alors il sera enregistré sur le chemin spécifique de programme.

S'il vous plaît, répondez-moi à la source si elle peut ouvrir le fichier Excel existant & amp; qui peut être ajouté & amp; enregistrer sous un autre nom.

Cordialement, Girish

Était-ce utile?

La solution

Consultez ici les informations .

Autres conseils

ExcelPackage n'est plus maintenu. Il semble y avoir quelques bugs. En lisant ce commentaire, j’ai trouvé http://epplus.codeplex.com/

Il s’appuie sur ExcelPackage et hérite de ses licences (GPL). Il est donc possible qu’il ne réponde pas à vos besoins.

Si vous utilisez la version 2007 d'Excel, je vous conseillerais plutôt d'utiliser ExcelPackage . implémentation du standard OpenXML, elle est beaucoup plus rapide et beaucoup moins encombrante que COM interop, et vous pouvez l’exécuter sur une machine sur laquelle Excel (Office) n’est même pas installé, comme sur votre serveur Web.

Fortement recommandé - mais limité à Excel 2007 et versions ultérieures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top