Apache POI を使用して CSV データを効率的にインポートするにはどうすればよいですか? Excelスプレッドシートに保存したい非常に大きなCSVファイルがある場合、セルごとにインポートするのが最善の方法だとは思いません...?
4 に答える
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 にロードします。
Excel スプレッドシートに情報を追加する最も効率的な方法は、配列を使用することです。このコード:
Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray
下限が 1 である 2 次元配列からシート範囲を取り込みます。
あなたの状況では、最初に CSV ファイルを配列に読み込み、上記のような構文を使用してワークシートに配置します。
スタン・スコット