我正在使用 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)
但这不是很干净的代码,客户以后使用起来也不是很容易。有更好的方法吗?
最佳答案
虽然与您的问题没有直接关系,但我发现自己将一些 Excel 类包装在自己的类中以进行自定义处理。例如,我不直接使用 HSSFWorkbooks,而是使用包含 HSSFWorkbook 的 ExcelWorkbook 类。我这样做的原因是为了向类中添加相关的辅助方法,对于其他我没有修改的方法,我只是传递给 HSSFWorkbook 实例。您还可以扩展您正在使用的相关类以覆盖行为,但您可能希望查看它们的源代码以确保您没有破坏任何东西。
关于java - Apache POI Excel 行和列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275757/