2009-04-06 6 views
11

Apache POIでCSVデータを効率的にインポートするにはどうすればよいですか? Excelスプレッドシートに保存したい非常に大きなCSVファイルがある場合は、セル単位でインポートするのが最善の方法だとは思いません...?Apache POIでCSVデータをインポートする

答えて

1

Excelスプレッドシートに情報を追加する最も効率的な方法は、配列を使用することです。このコード:

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

は下限があなたの状況では1

で、私は最初の配列にCSVファイルを読み込み、THEN構文を使用する2次元配列、からシートの範囲を移入上記のようにワークシートに配置します。

スタン・スコット

15

のApache POIは、CSVファイルを呼び出すように設計されていませんでした。 CSVファイルはExcelで開くことができますが、Excelには自動読み込みを行う独自のリーダーがあります。これは、あなたのCSVが.txt接尾辞の代わりに.csvを持っていることを前提としています。接尾辞が.txtの場合は.csvとして保存します。 CSVとOpen With Excelを右クリックするだけです。 CSVはExcelにインポートされています。

私はあなたがtxtファイルからExcelファイルにデータを解析したいと仮定しています。その場合は、POIに何かをさせる代わりに、ライブラリliKe SuperCSVを使用することをお勧めします。データを解析するときにBean、Map、Listのいずれかにロードされます。次に、.csvファイルに選択した形式で書き込むか、JDBC-ODBC BridgeまたはApache POIを使用して書き込みますそれは.XLS形式に直接変換されます。余分なステップを追加しますが、データを完全に制御できます。

SuperCSVにはApache2ライセンスが付属しているので、あなたが選択したものには適しています。

javaで.split()関数を使用し、CSVを解析してPOIで配列を.xlsに読み込むだけです。