2013-01-03 17 views
18

Di seguito è riportato il mio codice per leggere il file excel.Epplus non legge il file excel

Codice.

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

Quando eseguo il codice genera un errore di runtime.

errore

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 

apprezzato se qualcuno potesse consiglio/aiuto su questo. Grazie.

risposta

30

Epplus non gestisce file .xls (formato BIFF8) per quanto ne so.

Gestisce il formato .xlsx (Open Office Xml) più recente.

È possibile utilizzare excellibrary anche se funziona con file xls.

+0

grazie @scarttag .. – Rakeshyadvanshi

1

In data di questo post EPPLUS (v4.4.1) sembra per gestire i file xls, proprio come fa con XLSX:

Ecco un esempio:

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(); 
     } 

anche testato il tuo codice:

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

e funziona senza problemi.

Problemi correlati