2017-12-22 6 views
2

Ich versuche eine xlsm-Datei mit EPPlus zu importieren. Ich habe den Link gefunden, der besagt, dass EPPlus dies nicht unterstützt: Convert XLSM to XLSX. Es ist sehr alt, also wollte ich wissen, ob es jetzt unterstützt? Wenn nicht, gibt es eine Möglichkeit, dies mit EPPlus zu tun, indem Sie in XLSX konvertieren, aber der Weg sollte unabhängig von Microsoft-Updates sein und nur von den Bibliotheken abhängig sein, die zum Zeitpunkt der Erstellung des Programms verwendet wurden. Meine aktuellen Code sieht wie folgt aus:EPPlus-Importdatei xlsm

FileInfo file = new FileInfo(Path.Combine(Program.source_path, s)); 
    using (ExcelPackage package = new ExcelPackage(file)) 
    { 
     ExcelWorksheet worksheet = package.Workbook.Worksheets[3]; 
     for (int row = 9; row <= worksheet.Dimension.End.Row; row++) 
     { 
     } 
    } 

Antwort

2

Dieser kopiert den gesamten Inhalt von der Quelle xlsm Datei auf eine Ziel xlsx-Datei.

 using (var target = new ExcelPackage(new System.IO.FileInfo("D:\\target.xlsx"))) 
     { 
      using (var source = new ExcelPackage(new System.IO.FileInfo("D:\\source.xlsm"))) 
      { 

       foreach (var worksheet in source.Workbook.Worksheets) 
       { 
        target.Workbook.Worksheets.Add(worksheet.Name, worksheet); 
       } 
      } 
      target.Save(); 
     } 
+0

Sie sollten das Ziel-Excel-Paket auch in eine using-Anweisung einfügen. Dies ist die beste EPPlus-Lösung bisher, aber ich habe versucht und ich verliere die Tabelle formatieren in einem Bereich (als ich das Excel öffnete, sagt es ein Problem gefunden und versucht, wiederherzustellen, dann ist die Tabelle weg.) – Magnetron

+0

danke für Ihre Eingabe, ich aktualisierte meine Antwort –

+0

Ich werde diese Logik jetzt versuchen. –

Verwandte Themen