2014-10-01 24 views
8

Mã sau đây hoạt động tốt đối với .xlsx, nhưng nó không hoạt động đối với .xls. Tôi nhận được thông báo lỗi nàyLỗi khi cố gắng đọc tệp .xls bằng EPPlus

Không thể mở gói. Gói là một tài liệu hỗn hợp OLE. Nếu đây là một gói phần mềm mã hóa, vui lòng cung cấp mật khẩu

string filepath = txtBrowse.Text; 

FileStream stream = System.IO.File.Open(filepath, FileMode.Open, FileAccess.ReadWrite); 
//1. Reading from a binary Excel file ('97-2003 format; *.xls) 
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream); 

FileInfo newFile = new FileInfo(filepath); 

using (ExcelPackage package = new ExcelPackage(newFile)) 
{ 
    string sheetName = System.DateTime.Now.ToShortDateString(); 

    foreach (OfficeOpenXml.ExcelWorksheet sheet in package.Workbook.Worksheets) 
    { 
     // Check the name of the current sheet 
     if (sheet.Name == sheetName) 
     { 
      package.Workbook.Worksheets.Delete(sheetName); 
      break; // Exit the loop now 
     } 
    } 

    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(System.DateTime.Now.ToShortDateString()); 
} 

Làm thế nào để thực hiện điều này một cách chính xác?

Trả lời

19

EPPlus không hoạt động với định dạng XLS. Chỉ XLSX. Bạn sẽ cần phải tìm một thư viện mới.

+1

Thanks for ur trả lời. Nhưng bạn có thể đề xuất bất kỳ cái nào dễ đọc và xử lý excel hay không. Vì dự án của tôi đã hoàn thành nên tôi chỉ muốn chỉnh sửa một số mã epplus. – user3151262

+4

@ user3151262, NPOI hoạt động cho cả hai .xls và .xlsx 'https: // npoi.codeplex.com /' – user3473830

0

tôi thành công sử dụng Tony của câu trả lời https://stackoverflow.com/a/18904633/306515 và chỉ đơn giản là chuyển đổi nó bằng cách sử Microsoft.Office.Interop.Excel và vẫn có thể sau đó sử dụng epplus

Các vấn đề liên quan