2011-11-12 35 views
12

Tôi đang sử dụng excelLibrary để tạo các tệp excel có lập trình nhưng tôi gặp phải lỗi định dạng tệp khi cố mở các tệp được tạo trong Microsoft Office Excel.Không thể mở tệp excel được tạo bằng excelLibrary

Tôi đã xem this has been reported nhưng vẫn không có câu trả lời.

Tôi sử dụng Office 2010 và tôi có thể mở bất kỳ định dạng tệp .xls nào khác (định dạng 97-2003) nhưng tệp được tạo bằng excelLibrary. Tôi cũng đã thử Open Office và vẫn không thể mở tệp được tạo. Tôi chưa thử mở chúng trong Office 97-2003.

Chỉ cần thử sample code để tạo lại lỗi.

Có ai đã tìm cách sử dụng thư viện và không gặp sự cố này không?

+0

Không chắc chắn về lỗi tuy nhiên thư viện không có hỗ trợ 2007/2010, có lẽ nhìn vào một cái gì đó mới hơn? http://netoffice.codeplex.com/ – Kane

+0

Tôi đã tìm thấy giải pháp, xem câu trả lời mới của tôi. – aleroot

+0

Thử [EPPlus] (http://epplus.codeplex.com). Nó yêu cầu .NET 3.5 nhưng rất tuyệt vời và rất mạnh mẽ. Nó sử dụng OpenOfficeXml. –

Trả lời

39

Tìm thấy một giải pháp:

string filename = "c:\Test.xls"; 
Workbook workbook = new Workbook(); 
Worksheet sheet = new Worksheet("Test") 
workbook.Worksheets.Add(sheet) 

for(int i = 0;i < 100; i++) 
     sheet.Cells[i,0] = new Cell(""); 

workbook.save(filename); 

Vấn đề là Office 2010 không hỗ trợ nó trừ khi có 100 hoặc nhiều tế bào Đầy.

Công việc của tôi xung quanh là phải điền vào 100 ô trong vòng lặp for với "". Bằng cách đó, nó được đếm 100 ô và sau đó nó hoạt động tốt.

tham khảo: here

+0

+1 Tuyệt vời! Tôi đang tìm kiếm điều này, cảm ơn bạn! – Somebody

+0

Cảm ơn người đàn ông .. Bạn đã cứu sống 3 người – Sayka

+0

Điều đó đã hiệu quả! Nhưng giới hạn 256 cột chỉ là quá hạn chế (Excel 97?) Quá xấu, tôi thực sự thích giấy phép LGPL hơn Apache. Đang thử NPOI bên dưới. – user922020

5

Thật không may tệp excel được xuất với excelLibrary không tương thích với Office 2010 Excel, đây là sự cố đã được báo cáo nhưng dường như việc phát triển thư viện không còn hoạt động nữa.

Tôi đã chuyển sang NPOI.

+0

+1 cho NPOI, chỉ cần lưu ý rằng NPOI API khá chi tiết về phong cách, yêu cầu bạn phải liên tục Tạo nội dung *, đặc biệt khi nói đến định dạng. Ngoài ra, tên viết tắt của chúng thật sự là khủng khiếp, làm cho nó gần như vô dụng cho đến khi bạn nhớ rằng thứ bạn muốn được gọi là "HSSF". –

+1

Có. Hãy thử [EPPlus] (http://epplus.codeplex.com). Nó yêu cầu .NET 3.5 nhưng rất tuyệt vời và rất mạnh mẽ. Nó sử dụng OpenOfficeXml. –

-1

Kể từ khi tên sheet không được đưa ra đúng cách, nó đã được ném lỗi đó.

Khi chúng tôi đặt tên cho trang tính, tên đó sẽ hoạt động bình thường.

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