Я использую Aspose для чтения CSV-файла.Aspose Cells для Java: получить исходную строку CSV
Я не знаю заранее количество ячеек для каждой строки файла, но мне нужно будет знать его для дальнейшей обработки.
К сожалению, я не вижу способа узнать количество ячеек в строке CSV.
Представьте следующую строку в файле CSV. Он содержит 7 клеток, 4 из которых являются пустыми:
1,2,,4,,,
Использование
row.iterator();
Aspose будет возвращать только 3 клетки, так как она игнорирует все пустые ячейки.
В качестве альтернативы, я теперь сделать следующее:
Cell lastCell = row.getLastCell();
int count = 0;
do {
cell = row.getCellOrNull(count);
String cellValue = cell == null ? "" : cell.getStringValueWithoutFormat();
//do something with the cell value...
count++;
} while (cell == null || ! lastCell.equals(cell));
Это работает лучше, так как она возвращает первые 4 клетки. Однако он все еще игнорирует последние 3 ячейки.
Есть ли способ получить информацию о недостающих ячейках? (было бы достаточно для меня, если Aspose может вернуть оригинальную строку в виде строки - я мог бы подсчитать количество запятых и выяснить количество клеток таким образом)
К сожалению, у меня есть разные строки с разным количеством ячеек каждый. С вашим решением я получаю только количество ячеек для самой длинной строки. –
Я рассмотрел эту проблему, и я подумал, что вместо использования Aspose.Cells вы можете напрямую читать строки csv с использованием Java API, а затем подсчитывать запятые внутри него. Я пробовал некоторые Java-коды, но, к сожалению, эти коды не читают пустые строки csv, но они читают те строки, у которых по крайней мере одна ячейка не пуста. Вы также можете опубликовать свою проблему на форумах Aspose.Cells, затем мы добавим новую функцию в Aspose.Cells для выполнения ваших требований. – shakeel
Спасибо, я разместил это здесь: http://www.aspose.com/community/forums/showthread.aspx?PostID=719442&Subj=aspose-cells-for-java-get-original-csv-row#719442 –