我有以下包含循环的代码块:
Row row = null;
Cell cell = null;
String dataVal = null;
String[] temp = null;
for (int j = 0; j < this.myDataValues.size(); j++) {
row = sheet.createRow(rownum++);
temp = this.finalRowValues.get(j);
for (int i = 0; i < 4; i++) {
cell = row.createCell(i);
dataVal = temp[i];
if (NumberUtils.isNumber(dataVal)) {
double d = Double.valueOf(dataVal);
cell.setCellValue(d);
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
cell.setCellStyle(styles.get("currency"));
} else if (isValidDate(dataVal)) {
cell.setCellValue(dataVal);
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
cell.setCellStyle(styles.get("date"));
} else {
cell.setCellValue(temp[i]);
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellStyle(styles.get("data"));
}
sheet.autoSizeColumn(i);
}
}
每个对象包含 4 个值myDataValues
在List
哪里。String[]
String[]
我在 Rational Application Developer 版本 8 和 Apache POI 3.8 中运行它。
大约有 5500 个元素,myDataValues
我认为这是一个很小的值。
但是,此代码块需要一个多小时才能运行。
我认为这有问题。5500 个元素,每个元素包含 4 个元素,运行速度应该非常快,应该是几分钟的问题。可能的原因是什么?有没有办法让这个块运行得更快?
机器的可用内存或任何其他此类问题没有任何问题。一切都按预期工作,我已经验证过了。问题仅在此块中。