apache poi пишет только последний ряд - PullRequest
0 голосов
/ 29 декабря 2011

мое приложение берет данные из базы данных и записывает их в Excel.я использую poi как конвертер java в excel во время записи У меня проблема с записью только последней последней строки, может ли это быть чем-то реализованным для буферизации, потому что здесь транспортируется много данных.

здесьэто код

for(int i=0; i<0;i<workorderlist.size;i++) {      
     //cargo start
     if(null!=workordervolist.get(i).getCargo()){
        String cargo = workordervolist.get(i).getCargo();
        cell = row1.createCell(15);
        cell.setCellStyle(nonEditable);
        cell.setCellValue(cargo);
        if(cargo.length()> colLenght[15]-2)
            colLenght[15] = cargo.length()+2;
      }
      //cargo end
}

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Как сказал Эвальд, ваш цикл некорректен:

for(int i=0; i<0;i<workorderlist.size;i++) 

Я даже удивлен, что он компилируется.Структура for:

объявление переменной;условие остановки цикла;incrementation.

У вас есть два условия, и нет приращения: скорее всего, вы не входите в свой цикл, что можно увидеть, используя отладчик или поместив простой System.out.println («В цикле»).") после for.

более того, где вы увеличиваете строку?Откуда берется row1?У вас должно быть что-то вроде:

row1 = sheet.getRow(i);

Таким образом, вам нужно опубликовать больше кода для лучшего ответа.

0 голосов
/ 30 декабря 2011

На самом деле, это не полный исходный код. Я просто вставил часть этого; Извините, я не заметил, что это не синтаксически правильно.
Я исправил это. Проблема заключалась в том, что в цикле for я использовал:

row = sheet.createRow(i);
row1= sheet.createRow(i+1);

Итак, каждый цикл итерации удалял строки, написанные до этого.

...