Apache Poi - метод createCell () не принимает индекс через для l oop в качестве параметра - PullRequest
1 голос
/ 30 марта 2020

Я хочу создать файл Excel с Apache Poi на основе листа другого файла Excel. Только первые два столбца и соответствующие им строки должны быть применены к новому листу Excel.

Сначала я вставляю все ячейки первого столбца, затем увеличиваю значение columnIndex для вставки других ячеек.

private static void createNewWorkBook(XSSFSheet oldSheet) {
    XSSFWorkbook newWorkbook = new XSSFWorkbook();

    XSSFSheet newSheet = newWorkbook.createSheet("test-sheet");
    for (int columnIndex = 0; columnIndex < 2; columnIndex++) {
        int rowIndex = 0;
        for (Row oldRow : oldSheet) {
            XSSFRow newRow = newSheet.createRow(rowIndex);
            XSSFCell newCell = newRow.createCell(columnIndex); 
            newCell.setCellValue("Hello"); // just for test purposes

            // newCell.setCellValue(oldSheet.getRow(rowIndex).getCell(columnIndex).getStringCellValue());

            rowIndex++;
        }

    }

    try {
        FileOutputStream fos = new FileOutputStream(new File("CreateExcelDemo.xlsx"));
        newWorkbook.write(fos);
        fos.close();
    } catch (
            IOException e) {
        e.printStackTrace();
    }
}

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

НО: если я заменю columnIndex на 0 или 1, это работает! Где моя проблема мышления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...