当前位置: 首页 > 知识库问答 >
问题:

Apache POI,如何修改Excel文件中的条件格式范围?

吕永嘉
2023-03-14

我需要调整条件格式的范围。

读取Excel文件(.xlsm、.xlsx),修改条件格式的范围,并将其另存为新文件。

SheetConditionalFormatting sheetFormatting = sheet.getSheetConditionalFormatting();
for( int i = 0; i < sheetFormatting.getNumConditionalFormattings() ; i++ )
    for( CellRangeAddress region : 
            sheetFormatting.getConditionalFormattingAt(i).getFormattingRanges() )
        if( region.getFirstRow() == 1 )
            region.setLastRow( 1+data.length );

所以我只是获取所有条件格式对象,为它们获取范围对象,并通过调用CellRangeAddress.setLastRow()修改范围。

问题是这个修改不存在于结果文件中。实际上,sheet.getSheetConditionalFormatting()在刚刚完成操作之后没有任何变化。

是否需要“提交”对conditionalformatting的更改?

共有1个答案

海新霁
2023-03-14

是,您应该在工作表格式中添加条件格式。

sheetFormatting.addConditionalFormatting(newRange,arrayOfRules);
 类似资料:
  • 各位, 我们有一个与excel更新的可伸缩性有关的需求。 例如,我们有一个Excel工作簿,有10个工作表,每个工作表都有大量的数据。 现在我们要做的是用“新值”替换其中一个单元格。 但是在Apache POI中,我们理解了我们必须加载整个“工作簿”,即使我们必须修改excel表单中的数据。这消耗了巨大的内存,是不可接受的。 是否有任何单元格级读写(立即刷新)工具或API用于Excel。

  • 我需要计算一个单元格在一个odt上的一个表,文件,并应用条件格式,如果值>0。不在speedsheet中,是用于writer的

  • 每当我使用Apatche POI打开Excel文件时,文件都会被修改,即使我只是在读取文件而不进行任何修改。 以这样的测试代码为例。 Test 总是失败,因为 Apache POI 总是会修改该文件。在测试使用MS Office新创建的空白Excel文件时,Apache POI将文件从8.1 kb切割到6.2 kb并损坏文件。 测试对象: 以及版本3.12 我是否可以防止Apache POI通过其

  • 我习惯于在Tomcat上部署应用程序war文件,现在需要在非常紧迫的期限内使用Jboss EAP,所以没有太多时间学习。我看到主要的区别是,当我启动jboss实例时,war文件没有像Tomcat中那样被提取。Jboss只是在部署war文件中的内容。那么如何修改war文件中的文件呢?我是否需要为每次更改提取、更改和重新打包? 非常感谢。

  • 本文向大家介绍nodejs批量修改文件编码格式,包括了nodejs批量修改文件编码格式的使用技巧和注意事项,需要的朋友参考一下 摘要:   最近在制作手册的时候遇到了一个问题'文档乱码',查看文件之后发现文件编码不对,总共100多个文件,如果用编辑器另存为utf8,那就悲催了。所以自己就写了个程序,批量修改文件编码格式。 代码:   小结:   上面的程序支持多级目录,同一个文件不能进行多次操作,

  • 我有一个像这样的excel格式: 我有两个函数来填充数据。这个是填充细节。 这个用来填充总数 问题是,如果我有超过5条记录,数据将被填充到第20行,我的格式被破坏。我的预期结果是,如果有超过5条记录,那么它将为每个添加的记录添加2行(作为格式),并且我的SUM始终是工作表的最后2行。 我正在考虑将 SUM 性别删除到另一个工作表中,并将其复制到最后一个工作表中,直到详细信息完成。但是我遇到了一些问