Java Apache POI(excel)性能getSheet()与createSheet()的比较
构造非常简单,我输入了对象列表(比如说100k条记录),然后将这个列表放入excel表格。 我注意到,如果我使用createSheet(),填充工作表只需几秒钟。 若我使用getSheet(例如,我的报告使用模板),填充报告需要几分钟的时间。对此有什么解释Java Apache POI(excel)性能getSheet()与createSheet()的比较,java,excel,performance,apache-poi,Java,Excel,Performance,Apache Poi,构造非常简单,我输入了对象列表(比如说100k条记录),然后将这个列表放入excel表格。 我注意到,如果我使用createSheet(),填充工作表只需几秒钟。 若我使用getSheet(例如,我的报告使用模板),填充报告需要几分钟的时间。对此有什么解释 public void populateSheet(List<Objects> input) { XSSFSheet rowsSheet = getWorkbook().createSheet("SheetName
public void populateSheet(List<Objects> input) {
XSSFSheet rowsSheet = getWorkbook().createSheet("SheetName");
int l = 1;
for (Objects row : input) {
.....
}
public void populateSheet(List<Objects> input) {
XSSFSheet rowsSheet = getWorkbook().getSheet("SheetName");
int l = 1;
for (Objects row : input) {
.....
}
public void populateSheet(列表输入){
XSSFSheet rowsSheet=getWorkbook().createSheet(“SheetName”);
int l=1;
用于(对象行:输入){
.....
}
公共作废填充表(列表输入){
XSSFSheet rowsSheet=getWorkbook().getSheet(“SheetName”);
int l=1;
用于(对象行:输入){
.....
}
根据我的经验,excel文件可能包含大量隐藏内容,即使在打开文件时什么也看不到。
我会尝试重新创建工作表的新版本,并通过复制/粘贴重新创建标题。然后,测试程序的速度。根据我的经验,excel文件可能包含大量隐藏内容,即使在打开文件时看不到任何内容。
我会尝试重新创建一个新版本的工作表,并通过复制/粘贴来重新创建标题。然后,测试程序的速度。您的模板是否包含很多内容,如单元格数据、多张工作表、公式等等?模板有两个选项卡。一个选项卡有两个图表(但它们没有连接到多行),第二张工作表只有表头可能因为在内存中加载图表会导致性能损失。请尝试使用类似的模板,但不使用图表。您的模板是否包含大量内容,如单元格数据、多张工作表、公式等…?模板有两个选项卡。一个选项卡有两个图表(但它们没有连接到多行),第二张工作表只有标题可能因为在内存中加载图表会导致性能损失。请尝试使用类似的模板,但不使用图表。这正是我所做的。初始模板是从更大的文件创建的…这正是我所做的。初始模板是从更大的文件创建的。。。