14

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

4

4 に答える 4

16

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

txt ファイルから Excel ファイルにデータを解析したいと考えています。その場合は、POI に設計されていないことを実行させる代わりに、SuperCSVのようなライブラリを使用することをお勧めします。データを解析する際に、選択した Bean、Map、または List にすべてをロードし、選択した形式で.csvファイルに書き戻すか、JDBC-ODBC Bridge または Apache POI を使用して直接書き込むことができます。に変換して.XLSフォーマットします。余分な手順が追加されますが、データを完全に制御できます。

SuperCSV には Apache2 ライセンスが含まれているため、それを使用して行うことを選択した場合に適しているはずです。

またはsplit、Java で関数を使用して、CSV を配列に解析し、配列.xlsを POI にロードします。

于 2009-07-06T16:42:47.737 に答える
0

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

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

下限が 1 である 2 次元配列からシート範囲を取り込みます。

あなたの状況では、最初に CSV ファイルを配列に読み込み、上記のような構文を使用してワークシートに配置します。

スタン・スコット

于 2009-04-07T14:12:36.937 に答える