Apache POI将单元格设置为0

时间:2016-11-04 12:12:40

标签: java excel apache-poi

我正在使用Apache POI生成单元格,但我注意到它似乎将所有单元格设置为相同的值。在这种情况下0.我真的不明白为什么。当我要将工作表保存到文件时,我可以看到单元格有值,但是当查看生成的文件时,它是空的。任何帮助将不胜感激。

当我看到一些单元格有值(例如调试窗口中的“5”)时,这是一个调试屏幕:

enter image description here

以下是我用来生成工作表的代码:

@Override
public void generate(TableRepresentation tableRepresentation) {
    int rows = tableRepresentation.getRows();
    int columns = tableRepresentation.getColumns();
    final HSSFWorkbook workbook = new HSSFWorkbook();
    final HSSFSheet sheet = workbook.createSheet();
    for (int i = 0; i < rows; i++) {

        final HSSFRow row = sheet.createRow(i);
        for (int j = 0; j < columns; j++) {
            row.createCell(j).setCellValue(tableRepresentation.get(i, j));
        }

    }

    try {
        final FileOutputStream fos = new FileOutputStream("tjockis.xls");

        workbook.write(fos);
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println("tjockis.xls" + " written successfully");

}

public interface TableRepresentation {
    int getRows();

    int getColumns();

    String get(int i, int j);
}

编辑:

以下是导出的工作表的外观:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您将任何变量设为 final ,则无法更改最终变量的值(它将是常量)。

最终变量只能分配一次,其值不会改变,有助于避免编程错误。

分配最终变量后,它始终包含相同的值。如果 final 变量包含对对象的引用,则对象的状态可能会被对象上的操作更改,但该变量将始终引用同一对象。