Apache POI Excel行和列索引

我正在使用Apache POI来创build一个大型的Excel电子表格,这对客户端而言可能非常公式繁重,后来可能会用新的公式来修改我的程序代码。 我正在处理的一个大问题是处理这样一个事实,即POI工作簿对于它们的行和列是0索引的,而Excel公式处理文档就好像它是1索引的。 我正在使用受帮助的class级进行转换:

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) 

但是这不是非常干净的代码,并且不会很容易让客户在以后使用。 有没有更好的方法来做到这一点?

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