gpt4 book ai didi

java - apache POI 中单元格的直接寻址

转载 作者:行者123 更新时间:2023-11-30 07:30:08 25 4
gpt4 key购买 nike

我想使用 apache POI 修改现有的 xlsm 文件。

由于我只需要更改单个单元格,我不想循环整个工作表,但到目前为止我发现的所有示例都建议循环遍历所有行和一行中的所有单元格,检查是否当前行/列索引与要更改的行/列索引匹配。

是否没有“随机访问”模式可以直接通过坐标获取单个单元格?事件有希望getCell method of the CellUtil class需要一个行对象而不仅仅是一个整数坐标。

最佳答案

Excel 文件格式是一种(通常)稀疏文件格式,因此通常会从文件中跳过未使用的 + 无样式的行和单元格。因此,在获取行和单元格时,您确实需要检查空值。但是,除此之外,您几乎可以直接获取单元格。您可以使用 CellReference class将 Excel 样式的坐标集(例如 B3)转换为 POI 样式的坐标(例如 row=2,column=1),然后获取

CellReference ref = new CellReference("B3");

Workbook workbook = WorkbookFactory.create(new File("input.xls"));
Sheet sheet = workbook.getSheetAt(0);

Row r = sheet.getRow(ref.getRow());
if (r == null) {
// Handle this whole row being empty
} else {
Cell c = r.getCell(ref.getCol(), Row.RETURN_BLANK_AS_NULL);
if (c == null) {
// Handle this cell being empty
} else {
// Do something with the cell
}
}

根据您想要如何处理缺失的行或单元格,您可以将其缩短,但这将根据您的需求而定

关于java - apache POI 中单元格的直接寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36284673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com