java - 定义动态单元格范围

标签 java excel apache-poi

我正在使用 APACHE POI 进行条件格式化。我获取 txt 文件作为输入,并将其转换为工作表,然后执行条件格式设置。现在,第一列和标题是我不会对其进行任何格式化的文本。我必须对其余单元格进行条件格式设置,例如 B2:I10(但它会不断变化)我如何动态定义单元格范围。

目前,我已经

CellRangeAddress[] my_data_range = {CellRangeAddress.valueOf("B2:I10")};
my_cond_format_layer.addConditionalFormatting(my_data_range,my_rule1)

我如何动态定义 my_data_range,将第一列和行放在一边。

最佳答案

根据我的理解,我将问题分为两部分。

首先:-需要知道我们动态保存数据的单元格范围地址

第二:-重新定义单元格范围地址。

第一个解决方案:动态获取需要在范围内引用的单元格范围。

您可以轻松获取数据的第一个单元格(第一行/第一列数据)(假设为A3)和最后一个单元格(最后一行/最后一列)(假设为F9)

如果您有任何单元格,您可以轻松地从中获取其引用

cell.getReference();  //will give you A3 

现在我们需要使用简单的字符串操作来分离 A 和 3

char startCellColRef = cell.getReference().toString().charAt(0); // will Give you A 
int startCellRowRef = cell.getReference().toString().charAt(1);  // will give you 3

使用相同的方式也可以获得结束索引。

第二个解决方案:动态更改单元格引用。

Name reference = wb.getName("NameReferenceInExcelSheet");
referenceString = sheetName+"!$"+startCellColRef+"$"+startCellRowRef+":$"+endCellColRef+"$"+endCellRowRef;
reference.setRefersToFormula(referenceString);

关于java - 定义动态单元格范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428013/

相关文章:

java - 如何将 Onelogin 配置为虚拟 IdP

java - 如何将通用 JAXBElement 作为输入

excel - 使用 Microsoft Graph API 在 shareddriveitem/driveitem 资源中找不到工作簿关系

Excel 公式检查单元格内容

regex - 这是用于匹配 Excel 公式中任何单元格引用的正则表达式吗?

java - Excel POI : "We found a problem with some content in ... " when the Excel has less than 135 Rows

java - 在浏览器中显示 Excel 工作表?

java - 改造:URL 查询字符串不能有替换 block

java - 在 Java 中使用 Infinity 避免双重类型的最佳方法?

java - 使用 Apache POI Excel 写入特定单元格位置