int length = dataList.size();
int sheetSize = 10;
int sheetNum = 1;
if (length / sheetSize > 0) {
sheetNum = length / sheetSize + 1;
} else {
sheetNum = length / sheetSize;
}
for (int i = 0; i < sheetNum; i++) {
if (fileName.equals("") || fileName.length() == 0) {
fileName = getDefaultFileName();
}
if (heads == null || heads.length == 0) {
throw new Exception("excel的头为空");
}
response.setContentType("application/x-download; charset=utf-8");
response
.setHeader("Content-disposition", "attachment;" + "filename=" + URLEncoder.encode(fileName+i, "UTF-8") + ".xls");
os = response.getOutputStream();
wbook = Workbook.createWorkbook(os);
WritableSheet wsheet = wbook.createSheet(fileName, 0);
SheetSettings sheetSet = wsheet.getSettings();
sheetSet.setShowGridLines(true);
sheetSet.setFitToPages(false);
sheetSet.setPrintGridLines(true);
// 设置显示的网格线为真
sheetSet.setShowGridLines(true);
// 设置打印的网格线为真
sheetSet.setPrintGridLines(true);
// 设置格式,用于居中显示
WritableCellFormat format = new WritableCellFormat();
format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.MEDIUM);
format.setAlignment(jxl.format.Alignment.CENTRE);
for (int j = 0; j < heads.length; j++) { Label label = new Label(j, 0, heads[j], format);
wsheet.addCell(label);
wsheet.setColumnView(j, columnWidth);
}
for (int k = i * sheetSize; k < (i + 1) * sheetSize; k++) {
if (k < length) {
for (int t = 0; t < dataList.get(k).length; t++) {
Label label = new Label(t, k + 1 - (i * sheetSize), dataList.get(k)[t]);
wsheet.addCell(label);
}
} else {
break;
}
wbook.write();
}

}
假如length=20,分成循环2次,怎么只会输出来一个最后面的excel啊,应该生成2个excel啊

解决方案 »

  1.   

    谁知道啊?是jxl的问题吗,代码要怎么改啊
      

  2.   

    首先你length=20,是循环3次
    if (length / sheetSize > 0) 你是不是想写成if (length % sheetSize > 0) 啊然后你在response.setContentType("application/x-download; charset=utf-8");之前加上response.reset();// 清空输出流试一试
      

  3.   

    还有我导出excel都是
    response.setHeader("Content-Type", "application/vnd.ms-excel");
      

  4.   

    还是不行啊,只能输出来最后的一个excel和数据,其他的没有了啊
      

  5.   

    清空数据报错啊response.reset();
      

  6.   

    参考下
    http://topic.csdn.net/u/20100630/13/58d7341c-2d1e-43fa-8d28-1fbdd2f34cf7.html