Как я могу эффективно импортировать данные CSV с помощью Apache POI? Если у меня есть очень большой файл CSV, который я хотел бы хранить в моей электронной таблице Excel, то я не думаю, что переход по ячейке по ячейке - лучший способ импорта...?
Импорт CSV-данных с помощью Apache POI
Ответ 1
Apache POI никогда не был предназначен для вызова файлов CSV. В то время как файл CSV может быть открыт в Excel, у Excel есть собственный читатель, который делает автоматический импорт. Это предполагает, что ваш CSV имеет .csv вместо суффикса .txt. Если он имеет суффикс .txt, сохраните его как .csv. Все, что вам нужно сделать, это щелкнуть правой кнопкой мыши по CSV и Open With Excel. Presto, CSV был импортирован в Excel.
Я предполагаю, что вы хотите проанализировать данные из txt файла в файл Excel. Если это так, я предлагаю вам использовать библиотеку liKe SuperCSV вместо того, чтобы пытаться получить POI, чтобы сделать что-то, что она никогда не предназначалась, Он будет загружать все это в Bean, карту или список по вашему выбору, когда он анализирует данные, а затем вы можете либо записать их обратно в формате, который вы выбрали в CSV файл, либо использовать мост JDBC-ODBC или Apache POI написать его непосредственно в формате .XLS. Добавляет дополнительный шаг, но затем вы полностью контролируете данные.
SuperCSV несет лицензию Apache2, поэтому она должна быть хорошей для всего, что вы решите сделать с ней.
Или просто используйте функцию .split() в java и проанализируйте CSV в массивы и загрузите массивы в .xls с помощью POI.
Ответ 2
Наиболее эффективным способом добавления информации в электронную таблицу Excel является использование массива. Этот код:
Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray
заполняет диапазон листов из двухмерного массива, где нижняя граница равна 1.
В вашей ситуации я сначала прочитал CSV файл в массиве, а THEN использовал синтаксис, как указано выше, чтобы разместить его на листе.
Стэн Скотт