Я использую Apache POI для извлечения таблиц из текстового документа.Эти таблицы имеют первый столбец ключа, второй значения, и это может быть любое количество таких парных столбцов.В настоящее время я перебираю каждую таблицу, каждую строку, каждую ячейку для последовательного хранения всех ячеек в List<String>
Конечная цель - сохранить результаты в CSV
с 2 столбцами Attribute name
и Attribute value
и K-V
столбцы должны быть перебраны сверху вниз, а затем перейти к следующим 2 столбцам, если они существуют.
Я перебираю List<String>
(i
, являющийся счетчиком индекса) и использую псевдокод ниже длясделать это:
- Используя логические значения
keyB
и valueB
и инициализировать keyB
в true
и valueB
в false
. If(keyB)
, затем сохранитьтекущая строка как Attribute name
и do i++
.Пометьте keyB
до false
и valueB
до true
. if(valueB)
, затем сохраните текущую строку как Attribute value
и выполните i=i+<NO_OF_COLUMNS> -1
, чтобы добраться до позиции ключа, присутствующего в следующей строке, иотметка от keyB
до true
. - Я также храню
topKeyInd
, который инициализируется для индекса ключа первой строки (0-й элемент List
) - , когда мы находимся в последней строкеЯчейка значения, тогда я использовал условие
if(i+<NO_OF_COLUMNS> -1)> List.size())
, тогда мы должны начать со следующей пары столбцов KV, если существует.Итак, i = topKeyInd +2
, чтобы перейти к первой ключевой ячейке 3-го столбца и соответственно обновить topKeyInd
. - Продолжать процесс, описанный выше, до тех пор, пока мы не достигнем последнего элемента
List
.
Itкажется очень сложным, есть ли лучший способ справиться с этим?