2009-04-06 25 views
11

CSV verilerini Apache POI ile nasıl verimli bir şekilde alabilirim? Excel e-tablomda saklamak istediğim çok büyük bir CSV dosyanız varsa, hücre-hücresine gitmenin en iyi yol olduğunu düşünmüyorum ...?CSV verilerini Apache ile içe aktarma POI

cevap

1

Excel e-tablonuza bilgi eklemenin en etkili yolu bir dizi kullanmaktır. Bu kod:

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

CSV ilk bir diziye dosyasını okumak ve SONRA sözdizimi kullanırsınız, alt sınır durumunuza 1.

bir iki boyutlu bir dizi, gelen levha aralığını doldurur Yukarıdaki gibi çalışma sayfasına yerleştirmek için.

Stan Scott

15

Apache POI CSV dosyaları üzerinde çağırmak için tasarlanmış değildi. Excel'de bir CSV Dosyası açılabilirken, Excel'in otomatik içe aktarma yapan kendi okuyucuları vardır. Bu, CSV'nizin .txt sonekinin yerine .csv'ye sahip olduğunu varsayar. .txt sonekine sahipse, onu bir .csv olarak kaydedin. Tüm yapmanız gereken, CSV'ye ve Excel ile Aç'a sağ tıklamak. Presto, CSV Excel'e aktarıldı.

Verileri bir txt dosyasından Excel Dosyasına ayrıştırmak istediğinizi varsayıyorum. Eğer durum böyle ise, hiçbir zaman yapmak için tasarlanmamış bir şey yapmak için POI almayı denemek yerine Kütüphane liKe SuperCSV kullanmanızı öneririm. Verileri ayrıştırdığı için onu bir Bean, Map veya List içine yükleyecektir ve daha sonra bir .csv dosyasına seçtiğiniz biçimde yazabilir veya bir JDBC-ODBC Bridge veya Apache POI yazabilirsiniz. doğrudan ve .XLS biçiminde. Fazladan bir adım ekler, ancak daha sonra verilerin tam kontrolüne sahip olursunuz.

SuperCSV, Apache2 Lisansını taşıyor, bu yüzden onunla yapmayı seçtiğiniz her şey için iyi olmalı.

Ya da java'daki .split() işlevini kullanın ve CSV'yi diziler halinde ayrıştırın ve dizileri POI ile .xls'ye yükleyin.