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

SXSSFSheet.addMergedRegion()之间的Apache POI差异

阎阳
2023-03-14

我正在使用ApachePOI构建excel文件。由于数据可能非常大,我决定使用SXSSFWorkbook而不是XSSFWorkbook。在应用程序运行时,我可以看到SXSSFSheet。addMergedRegionUnsafe()运行速度比SXSFSheet快。addMergedRegion(),但我找不到任何与之相关的文档。所以我想知道使用sxsfsheet.addMergedRegionUnsafe()有风险吗?

共有1个答案

鲜于岳
2023-03-14

sxsfsheet。addMergedRegionUnsafe只调用XSSFSheet.addMergedRegionUnsafe。请参阅SXSSFSheet的源代码:

...    
@Override
public int addMergedRegionUnsafe(CellRangeAddress region) {
 return _sh.addMergedRegionUnsafe(region);
}
...

这里是XSSFSheet。

和XSSFSheet中。addMergedRegionUnsafe记录了该行为:

添加单元格的合并区域(因此这些单元格形成一个区域)。跳过验证。可以创建重叠的合并区域,或创建与多单元格数组公式相交的合并区域,这可能会导致工作簿损坏。要在调用addMergedRegionUnsafe后检查合并区域重叠数组公式或其他合并区域,请调用validateMergedRegions(),该函数在O(n^2)时间内运行。

因此addMergedRealonUnsecurity运行得更快,因为它跳过了验证。因此,使用此功能,您的程序需要考虑不要创建重叠的合并区域,也不要创建与此公式相交的多单元格数组公式的合并区域。否则结果工作簿会损坏。

XSSFSheet的源。addMergedRegionUnsafe以确保完整性。

 类似资料:
  • 问题内容: 很快就有两个相等运算符:double equals( )和Triple equals( ),两者之间有什么区别? 问题答案: 简而言之: 操作员检查其实例值是否相等, 操作员检查引用是否指向同一实例, 长答案: 类是引用类型,可能有多个常量和变量在幕后引用类的同一单个实例。类引用保留在运行时堆栈(RTS)中,其实例保留在内存的堆区域中。当您控制平等时, 这意味着它们的实例是否彼此相等。

  • 在swift中似乎有两个相等运算符:双相等()和三相等(),这两者有什么区别?

  • 我编写了一个简单的脚本,它接受任意数量的参数来演示< code>$@和< code>$*之间的区别: 在我做的 CLI 上 这就是打印出来的 因为它们是相同的,这是否意味着等于?还是我遗漏了一点?

  • 本文向大家介绍成本差异和进度差异之间的差异,包括了成本差异和进度差异之间的差异的使用技巧和注意事项,需要的朋友参考一下 对于任何应用程序或专门用于任何项目,最关注的因素之一是在开发前和开发后阶段的预算管理和时间管理。因此,要评估任何项目的这两个主要因素,有很多方法,其中成本差异和进度差异是两个重要且主要的方法。 顾名思义,“成本差异”基于项目开发中花费的成本,而“进度差异”则基于相同开发中花费的时

  • 问题内容: package main 该代码可以很好地工作。但是,如果按如下所示更改方法,则会导致死循环。区别在于将替换为。为什么? 问题答案: 因为程序包检查要打印的值是否具有方法(或换句话说:是否实现接口),如果是,则将调用它以获取值的表示形式。 软件包doc中对此进行了说明: […]如果操作数实现String()字符串方法,则将调用该方法将对象转换为字符串,然后根据动词的要求对其进行格式化(

  • 我正在通过做微控制器项目来自学C++。我当前的项目是使用一对或Adafruit羽毛分组无线电。无线电数据包的库函数需要一个C样式的字符串(我相信),我理解它是一个char的数组。 我已经设置了一个枚举来反映接收方的各种操作,并希望将该状态发送回发送方。所以我想把枚举变成char的数组。 在搜索将枚举转换为char数组的方法时,最简单的方法(对我来说)是将枚举变量传递给带有switch语句的函数,该