java - Apache POI Excel 行和列索引

标签 java excel apache-poi

我正在使用 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/

相关文章:

java - 无法将主类与 Netbeans 中的其他类连接

java - 如何使用 [Apache POI] 创建依赖下拉列表

excel - 哪个工作表包含带有 3D 公式的值

arrays - Vba Excel全局数组没有保留值

vba - "For Each Cell"在命名范围的子集中?

java - XSSFWorkbook 问题 - 创建新文件时

ruby-on-rails - 使用 Apache POI 从 Ruby on Rails Web 应用程序中的 MS Word (.doc) 文件中提取文本

java - 删除最后一个新行字符串

java - 如何在运行时添加单选按钮

java - 使用 SXSSF Workbook 可以写入的行数