Lưu trữ

Posts Tagged ‘Without Office’

Kết xuất dữ liệu ra excel (2)

Một trong những nhu cầu cơ bản nhất của người dùng khi cần kết xuất dữ liệu ra excel là xuất một dataset ra file excel, mỗi datatable tương ứng với một sheet chứa dữ liệu. Trong ví dụ ở phần trước về kết xuất định dạng XML Spreedsheet tôi cũng đưa project mẫu đáp ứng nhu cầu kết xuất này. Một nhu cầu khác cũng thường gặp trong các ứng dụng nghiệp vụ, đó là điền dữ liệu vào một template có sẵn (với định dạng có thể phức tạp).

Các thư viện nguồn mở, miễn phí được tìm hiểu sử dụng trong bài viết này đều là thư viện viết bằng .NET, nếu các bạn biết các thư viện bằng ngôn ngữ khác có thể chia sẻ tại đây.

2. Kết xuất định dạng BIFF8 (Excel 97-2003 file format)

Có hai thư viện hỗ trợ định dạng BIFF8 tôi đã thử nghiệm, khá gọn nhẹ. Đó là ExcelLibrary và NPOI.

  • ExcelLibrary:

Liên kết:

http://code.google.com/p/excellibrary/

http://www.codeproject.com/Articles/16210/Excel-Reader

Theo các tác giả (người Tung Của), thư viện này hiện đang hỗ trợ định dạng BIFF và có thể hỗ trợ .xlsx trong tương lai, nhưng nhìn vào commit changes thì có vẻ như hơn một năm nay thư viện không được sửa đổi gì cả. Vậy thì hoặc bạn nào có thể bổ sung hỗ trợ định dạng .xlsx, hoặc với xlsx thì ta tìm cái khác (như các thư viện tiếp sau tôi sẽ giới thiệu).

Sử dụng ExcelLibrary, việc kết xuất một dataset ra file excel cực kỳ thuận tiện:

ExcelLibrary.DataSetHelper.CreateWorkbook(“ExcelLibrary.xls”, ds);

Cách mở file, đọc cell, tạo workbook, duyệt sheet các bạn có thể xem trong bài báo trên Codeproject. Theo cá nhân tôi, thư viện này ưu điểm nhỏ gọn tốc độ, nhược điểm là chưa hỗ trợ về định dạng tài liệu (font, màu, …), và dường như tác giả đã quên nó.

  • NPOI

Liên kết:

http://npoi.codeplex.com/

http://code.google.com/p/npoi/

Đây là thư viện khá tốt và là ấn bản .NET của dự án trước đó viết trên nền java (http://poi.apache.org/).  Ưu điểm của NPOI (Copy-Paste):

a. It’s totally free to use

b. Cover most features of Excel (cell style, data format, formula and so on)

c. Profressionl support service (even 24*7) from NPOI team (not free)

d. Support xls, xlsx, docx.

e. Designed to be interface-oriented (take a look at NPOI.SS namespace)

f. Support not only export but also import

g. .Net 2.0 based even for xlsx and docx (though we also support .NET 4.0)

h. Successful cases from all over the world

i. huge amout of basic examples

 Một ưu điểm nữa là nó vẫn đang được phát triển. Nhược điểm là sử dụng hơi rườm rà.

Phiên bản từ 2.0 có hỗ trợ định dạng xlsx. Project mẫu tôi gửi ở đây có sử dụng phiên bản 1.2.5, trong đó tôi viết thêm lớp trung gian NPOISheet để sử dụng được dễ dàng hơn.

Phần sau: Các thư viện hỗ trợ xlsx.

Advertisements
Chuyên mục:Programming Thẻ:, ,