String fileName = DateTimeUtil.dateTimeToStr(new Date(),
DateTimeUtil.STR_DATETIME_PATTERN); response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename="
+ fileName + ".xls");// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
HSSFWorkbook wb = new HSSFWorkbook();// 建立新HSSFWorkbook对象
HSSFSheet sheet = wb.createSheet("sheet");// 建立新的sheet对象
HSSFRow head = sheet.createRow((short) 0);
head.createCell((short) 0).setCellValue("发送时间");
head.createCell((short) 1).setCellValue("短信名称");
head.createCell((short) 2).setCellValue("发送总数");
head.createCell((short) 3).setCellValue("成功次数 ");
head.createCell((short) 4).setCellValue("失败次数");
head.createCell((short) 5).setCellValue("成功率");
head.createCell((short) 6).setCellValue("");
for (int i = 0; i < list.size(); i++) {
SmsCdr item = list.get(i);
HSSFRow row = sheet.createRow((short) i+1);// 建立新行
row.createCell((short) 0).setCellValue(item.getTempTime());
row.createCell((short) 1).setCellValue(item.getServiceName());
row.createCell((short) 2).setCellValue(item.getTotalCount());
row.createCell((short) 3).setCellValue(item.getSuccessCount());
row.createCell((short) 4).setCellValue(item.getFailCount());
row.createCell((short) 5).setCellValue(item.getSuccessRate());
}
ServletOutputStream fileOut = response.getOutputStream();
fileOut.write(wb.getBytes());
fileOut.close();这样写出来的文件为什么在打开的时候报错啊.
上面的数据是有的,不需要纠结这个问题,只是打开文件有问题数据图
解决方案 »
- 这里有对ext比较熟的么?在js中如何解析JsonObject对象数组呢?
- 求软件工程师的职业规划
- 自己制作的ssl证书与购买的ssl证书有什么区别呀!
- 为什么我的Spring+Hibernate+Struts使用JNDI后,第一次保存成功,第二次保存不成功?
- hibernate连接数据库问题
- Hibernate递归中事务问题
- 高手请帮助,ejb中关于图片显示成字节的问题,急,谢谢
- 请问:我放到ftp服务上一个文件,在B/S结构下,客户打开一个jsp时,自动把这个文件下载到用户的机器上
- Array报错,求牛人解惑!
- 使用dom对象时发生的错误!
- 高分悬赏,mahout在linux下执行mahout --help报错信息如下,请求各位大侠指导 急急急,
- 模仿百度文库的一个问题!求大神解决啊~!
我一般都是导入CSV格式的,execl里面缩包含的格式太多,容易出现问题。
出现这个问题感觉应该是数据丢失的问题,就是你写的这个程序中好像少输出了一些东西。。
等会有空我也学学转execl的在看吧。
response.setHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
response.setContentType("application/octet-stream;charset=UTF-8");
workbook.write(response.getOutputStream());