it-swarm.com.de

Epplus liest keine Excel-Datei

Unten ist mein Code zum Lesen der Excel-Datei.

Code.

FileInfo newFile = new FileInfo("C:\\Excel\\SampleStockTakeExceptionReport.xls");
ExcelPackage pck = new ExcelPackage(newFile);
var ws = pck.Workbook.Worksheets.Add("Content");
ws.View.ShowGridLines = false;
ws.Cells["J12"].Value = "Test Write";
pck.Save();
System.Diagnostics.Process.Start("C:\\Excel\\SampleStockTakeExceptionReport.xls");

Wenn ich den Code laufen lasse, wird ein Laufzeitfehler ausgegeben.

Error

System.Exception: Can not open the package. Package is an OLE compound document. If this is an encrypted package, please supply the password ---> System.IO.FileFormatException: File contains corrupted data.
   at MS.Internal.IO.Zip.ZipIOEndOfCentralDirectoryBlock.FindPosition(Stream archiveStream)
   at MS.Internal.IO.Zip.ZipIOEndOfCentralDirectoryBlock.SeekableLoad(ZipIOBlockManager blockManager)
   at MS.Internal.IO.Zip.ZipArchive..ctor(Stream archiveStream, FileMode mode, FileAccess access, Boolean streaming, Boolean ownStream)
   at MS.Internal.IO.Zip.ZipArchive.OpenOnStream(Stream stream, FileMode mode, FileAccess access, Boolean streaming)
   at System.IO.Packaging.ZipPackage..ctor(Stream s, FileMode mode, FileAccess access, Boolean streaming)
   at System.IO.Packaging.Package.Open(Stream stream, FileMode packageMode, FileAccess packageAccess, Boolean streaming)
   at System.IO.Packaging.Package.Open(Stream stream, FileMode packageMode, FileAccess packageAccess)
   at OfficeOpenXml.ExcelPackage.ConstructNewFile(Stream stream, String password)
   --- End of inner exception stack trace ---
   at OfficeOpenXml.ExcelPackage.ConstructNewFile(Stream stream, String password)
   at OfficeOpenXml.ExcelPackage..ctor(FileInfo newFile)
   at Report.Form1.ExportToExcel1(DataTable Tbl, String ExcelFilePath) in C:\SMARTAG_PROJECT\SUREREACH\Excel\Report\Report\Form1.cs:line 39

Ich freue mich, wenn jemand diesbezüglich Ratschläge/Hilfe geben könnte. Vielen Dank.

20
chinna_82

Soweit ich weiß, verarbeitet Epplus keine .xls-Dateien (BIFF8-Format).

Es behandelt das neuere Format .xlsx (Open Office Xml).

Sie können excellibrary verwenden, da dies für xls-Dateien funktioniert.

34
scartag

Sie müssen XLS in das XLSX-Format konvertieren, bevor Sie die Excel-Tabelle mit EPPlus lesen können. Weitere Informationen finden Sie in this post.

0
Avinash

Lösung Wenn Sie Epplus verwenden möchten und Ihre Version von Eplus .xlx nicht unterstützt  

Hinweis: Wenn Sie Ihre .xlx-Datei in .xlsx konvertieren können, können Sie die folgenden Schritte überspringen

Sie können den Dateityp ändern. (Büro 10 oder höher)

1> File
2> Save & Send
3> File Types > Change File Type
4> Workbook File Types > Select Workbook
5> Click Save As

Nach den obigen Schritten wird Ihre Datei im XLSX-Format gespeichert

0
kplshrm7

Im Datum dieses Beitrags scheint EPPLUS (v4.4.1) mit xls-Dateien genau wie mit xlsx zu arbeiten:

Hier ist ein Beispiel:

  using (var target = new ExcelPackage(new System.IO.FileInfo("D:\\target.xls")))
        {
            target.Workbook.Worksheets.Add("worksheet");
            target.Workbook.Worksheets.Last().Cells["A1:A12"].Value = "Hi";
            target.Save();
        }

testete auch Ihren Code:

FileInfo newFile = new FileInfo("C:\\Excel\\SampleStockTakeExceptionReport.xls");
ExcelPackage pck = new ExcelPackage(newFile);
var ws = pck.Workbook.Worksheets.Add("Content");
ws.View.ShowGridLines = false;
ws.Cells["J12"].Value = "Test Write";
pck.Save();
System.Diagnostics.Process.Start("C:\\Excel\\SampleStockTakeExceptionReport.xls");

und es funktioniert ohne Probleme.

0
Yahya Hussein