怎么利用jxl循环生成多个excel

学会-Java 2011-03-02 11:30:19
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啊
...全文
228 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveofmylife 2011-03-02
  • 打赏
  • 举报
回复
还有我导出excel都是
response.setHeader("Content-Type", "application/vnd.ms-excel");
loveofmylife 2011-03-02
  • 打赏
  • 举报
回复
首先你length=20,是循环3次
if (length / sheetSize > 0) 你是不是想写成if (length % sheetSize > 0) 啊

然后你在response.setContentType("application/x-download; charset=utf-8");

之前加上response.reset();// 清空输出流试一试
学会-Java 2011-03-02
  • 打赏
  • 举报
回复
谁知道啊?是jxl的问题吗,代码要怎么改啊
学会-Java 2011-03-02
  • 打赏
  • 举报
回复
清空数据报错啊response.reset();
学会-Java 2011-03-02
  • 打赏
  • 举报
回复
还是不行啊,只能输出来最后的一个excel和数据,其他的没有了啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧