27

以下は、Excelファイルを読み取るための私のコードです。

コード。

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");

コードを実行すると、ランタイム エラーがスローされます。

エラー

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

誰かがこれについてアドバイス/助けてくれれば感謝します。ありがとう。

4

4 に答える 4

41

私の知る限り、Epplus は .xls (BIFF8 形式) ファイルを処理しません。

新しい .xlsx (Open Office Xml) 形式を処理します。

ただし、xls ファイルで機能するため、excellibraryを使用できます。

于 2013-01-03T07:32:11.527 に答える
0

EPPlus を使用して Excel シートを読み取る前に、XLS を XLSX 形式に変換する必要があります。詳細については、この投稿を参照してください。

于 2018-09-27T11:40:58.147 に答える
0

ソリューション Epplus を使用したいが、お使いのバージョンの Eplus が .xlx をサポートしていない場合

注: .xlx ファイルを .xlsx に変換できる場合は、以下の手順をスキップできます

ファイルの種類を変更できます..(office 10以降)

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

上記の手順の後、ファイルは .xlsx 形式で保存されます

于 2019-02-23T08:00:10.990 に答える