Импорт данных CSV с ПОИ Apache

Попробуйте добавить конструктор в свой класс RootObject.

public class RootObject
{
    public List<Book> Book { get; set; }

    public RootObject()
    {
       Book = new List<string>();
    }
}
13
задан isherwood 18 January 2015 в 01:07
поделиться

2 ответа

Самый эффективный способ добавить информацию к Вашей электронной таблице Excel при помощи массива. Этот код:

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

заполняет диапазон листа от двумерной матрицы, где нижняя граница равняется 1.

В Вашей ситуации я прочитал бы файл CSV в массив сначала и ЗАТЕМ использовал бы синтаксис как вышеупомянутое для размещения его в рабочий лист.

Stan Scott

1
ответ дан 1 December 2019 в 23:48
поделиться

Apache POI никогда не предназначался для обращения к файлам CSV. Хотя файл CSV можно открыть в Excel, в Excel есть собственный модуль чтения, который выполняет автоматический импорт. Предполагается, что ваш CSV имеет расширение .csv вместо суффикса .txt. Если он имеет суффикс .txt, сохраните его как .csv. Все, что вам нужно сделать, это щелкнуть правой кнопкой мыши CSV и открыть в Excel. Presto, CSV был импортирован в Excel.

Я предполагаю, что вы хотите проанализировать данные из текстового файла в файле Excel. Если это так, я бы посоветовал вам использовать библиотеку liKe SuperCSV вместо того, чтобы пытаться заставить POI делать то, для чего она никогда не была предназначена. Он загрузит все это в Bean, Map или List по вашему выбору по мере анализа данных, а затем вы можете либо записать их обратно в выбранном вами формате в файл. csv или используйте JDBC-ODBC Bridge или Apache POI, чтобы записать его непосредственно в формат .XLS. Добавляет дополнительный шаг, но при этом вы полностью контролируете данные.

SuperCSV имеет лицензию Apache2, поэтому он должен подходить для всего, что вы решите с ним делать.

Или просто используйте функцию .split () в java и разберите CSV на массивы и загрузите в них массивы. xls с POI.

15
ответ дан 1 December 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: