首页 文章

Apache POI Excel行和列索引

提问于
浏览
2

我正在使用Apache POI创建一个大型的Excel电子表格,这对于客户端来说非常重要,后来可能会使用新公式修改我的程序代码 . 我正在运行的一个大问题是处理POI工作簿的行和列的索引为0,而Excel公式处理文档就好像它是1索引的 . 我正在使用帮助课程来进行转换:

class RowHelper {
    public static int getCell(int col) {
        return col - 1;
    }

    public static String getCellAddress(int row, int col) {
        return CellReference.convertNumToColString(col) + row;
    }
}

当我在文档中编辑行时,我会这样写:

posRow.getCell(RowHelper.getCell(189)).setCellFormula(String.format("COUNT(%1$s:%2$s)", RowHelper.getCellAddress(2, 177), RowHelper.getCellAddress(ActiveSheet.getPhysicalNumberOfRows(), 177)));
//=COUNT(FU2:FU477)

但这不是非常干净的代码,客户在以后的使用中也不会很容易使用 . 有更好的方法吗?

1 回答

  • 1

    虽然与您的问题没有直接关系,但我发现自己用自己的一些Excel类包装来进行自定义处理 . 例如,我不直接使用HSSFWorkbooks,我使用包含HSSFWorkbook的ExcelWorkbook类 . 我这样做的原因是为类添加相关的辅助方法,对于我不修改的其他方法,我只是传递给HSSFWorkbook实例 . 您还可以扩展您正在使用的相关类来覆盖行为,但是您可能希望查看它们的源代码以确保不会破坏任何内容 .

相关问题