Apache POI запись только 1 строка в таблице - PullRequest
0 голосов
/ 26 февраля 2020

Я использую селен и java для очистки данных на указанном c сайте, но с помощью приведенного ниже кода я могу записать только 1 данные в электронную таблицу, она не записывает все данные в последовательности, как это должно быть .

Я не могу правильно структурировать l oop.

public void gravarDados() throws IOException {

    int i = 0;
    File localPlanilha = new File("tools/resultado_da_pesquisa.xlsx");

    FileInputStream planilhaExistente = new FileInputStream(localPlanilha);

    XSSFWorkbook plan = new XSSFWorkbook(planilhaExistente);

    XSSFSheet sheetExistente = plan.getSheetAt(0);

for (int i = 0; i < inicio; i++) {
    // Writing data
    sheetExistente.getRow(2).createCell(5).setCellValue(TitulosHoteis.get(i).getText());


    FileOutputStream fechandoArquivo = new FileOutputStream(localPlanilha);

    plan.write(fechandoArquivo);
  }
}

poi

Ответы [ 2 ]

4 голосов
/ 26 февраля 2020

В настоящее время вы получаете только 0-й элемент.

Вам необходимо выполнить итерации ниже с помощью for для l oop

TitulosHoteis.get(i).getText());

, чтобы записать результат в строки и столбцы.

Пожалуйста, измените его, как показано ниже

for (int i = 0; i < inicio; i++) {
    // Writing data
    sheetExistente.getRow(i+2).createCell(5).setCellValue(TitulosHoteis.get(i).getText());

}
    FileOutputStream fechandoArquivo = new FileOutputStream(localPlanilha);

    plan.write(fechandoArquivo);
1 голос
/ 28 февраля 2020

Как упоминалось ранее, вы не выполняете итерации по строкам, так как номер строки в вашем коде остается неизменным, однако есть и другая проблема с вашим кодом. Вам нужно проверить, существует ли строка и не создает ли она, прежде чем вы сможете установить значение ячейки для этой строки.

Это должно выглядеть примерно так:

for (int i = 0; i < inicio; i++) {
  Row row = sheetExistente.getRow(2+i);
  if (row == null) sheetExistente.createRow(2+i);
  sheetExistente.getRow(2 + i).createCell(5).setCellValue(TitulosHoteis.get(i).getText());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...