版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013967628/article/details/80773183
excel最大行
在 Excel 2010 和 Excel 2007 中,工作表的大小为 16,384 列 × 1,048,576 行,在 Excel 97-2003 中,工作表的大小为 256 列 × 65,536 行。在 Excel 中,超出最大行列数单元格中的数据将会丢失。
在每一个sheet中最大存储65535条数据,超过将报错。
所有在往excel导入大量数据的情况下,需要用sheet分组存储,且总行数不能超过最大限制。
示例代码:
private HSSFWorkbook export(List<Trade> list) {
HSSFWorkbook wb = new HSSFWorkbook();
int dd = 1;
HSSFSheet sheet = wb.createSheet("交易明细数据" + dd);
HSSFRow row0 = sheet.createRow((int) 0);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
String[] excelHeader0 = { "终端号", "加油卡卡号", "交易流水", "充值金额(元)", "优惠金额(元)", "实际支付金额(元)", "交易类型", "支付类型", "支付状态", "交易状态", "订单号", "交易时间", "网点代码", "商户号",
"站点名称" };
for (int i = 0; i < excelHeader0.length; i++) {
HSSFCell cell = row0.createCell(i);
cell.setCellValue(excelHeader0[i]);
cell.setCellStyle(style);
sheet.autoSizeColumn(i);
sheet.setColumnWidth(i, 6000);
}
HSSFRow row = null;
int num = 0;
for (int i = 0; i < list.size(); i++) {
if (i != 0 && (i) % 50000 == 0) {
sheet = wb.createSheet("交易明细数据" + (++dd));
row0 = sheet.createRow((int) 0);
style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
String[] excelHeader00 = { "终端号", "加油卡卡号", "交易流水", "充值金额(元)", "优惠金额(元)", "实际支付金额(元)", "交易类型", "支付类型", "支付状态", "交易状态", "订单号", "交易时间", "网点代码",
"商户号", "站点名称" };
for (int j = 0; j < excelHeader00.length; j++) {
HSSFCell cell = row0.createCell(j);
cell.setCellValue(excelHeader00[j]);
cell.setCellStyle(style);
sheet.autoSizeColumn(j);
sheet.setColumnWidth(j, 6000);
}
num = 0;
}
row = sheet.createRow(num + 1);
num++;
Trade c = list.get(i);
HSSFCell cell0 = row.createCell(0);
cell0.setCellValue(c.getDevicename());
cell0.setCellStyle(style);