2009-04-06 38 views
11

Làm cách nào để nhập dữ liệu CSV có hiệu quả với Apache POI? Nếu tôi có một tập tin CSV rất lớn mà tôi muốn lưu trữ trong bảng tính Excel của tôi, sau đó tôi không tưởng tượng rằng đi cell-by-cell là cách tốt nhất để nhập khẩu ...?Nhập dữ liệu CSV với Apache POI

Trả lời

1

Cách hiệu quả nhất để thêm thông tin vào bảng tính Excel của bạn là sử dụng mảng. Mã này:

Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray 

populates phạm vi tờ từ một mảng hai chiều, nơi mà các ràng buộc thấp hơn là 1.

Trong trường hợp của bạn, tôi sẽ đọc tập tin CSV vào một mảng đầu tiên, và sau đó sử dụng cú pháp như trên để đặt nó trên bảng tính.

Stan Scott

15

Apache POI không bao giờ được thiết kế để gọi trên tệp CSV. Trong khi tệp CSV có thể được mở trong Excel, Excel có trình đọc riêng của nó thực hiện nhập tự động. Điều này giả định rằng CSV của bạn có .csv thay vì hậu tố .txt. Nếu nó có hậu tố .txt, hãy lưu nó dưới dạng .csv. Tất cả sau đó bạn phải làm là nhấp chuột phải vào CSV và Open With Excel. Presto, CSV đã được nhập vào Excel.

Tôi giả định rằng bạn muốn phân tích dữ liệu từ tệp txt vào tệp Excel. Nếu đúng như vậy, tôi khuyên bạn nên sử dụng Thư viện liKe SuperCSV thay vì cố gắng để POI làm điều gì đó mà nó không bao giờ được thiết kế để thực hiện. Nó sẽ tải tất cả vào một Bean, Map hoặc List do bạn phân tích dữ liệu và sau đó bạn có thể ghi lại nó theo định dạng mà bạn đã chọn vào tệp .csv hoặc sử dụng JDBC-ODBC Bridge hoặc Apache POI để ghi nó trực tiếp vào và định dạng .XLS. Thêm một bước bổ sung, nhưng sau đó bạn có toàn quyền kiểm soát dữ liệu.

SuperCSV mang giấy phép Apache2, vì vậy nó sẽ tốt cho mọi thứ bạn chọn làm với nó.

Hoặc chỉ sử dụng hàm .split() trong java và phân tích cú pháp CSV thành mảng và tải mảng vào .xls với POI.

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