
java poi导出execl的文件文件不对,出现action的名字,而且没有扩展名 50
文件名字是自己赋值的,导出后的扩展文件名字却是action的名字,并且没有扩展名。数据量开始时60000多条,后来自己调到100条数据也也是同样情况。最关键的是,生成ex...
文件名字是自己赋值的,导出后的扩展文件名字却是action的名字,并且没有扩展名。数据量开始时60000多条,后来自己调到100条数据也也是同样情况。最关键的是,生成execl是用的公用方法,其他地方调用这个方法都没有问题。生成的文件名字和扩张名字都是正确的。
下面是导出execl的公用方法,
/**
*list 保存的数据
*response
*name execl文件名字
*/
public static void createExecl(List list, HttpServletResponse response,
String name) {
try {
HSSFWorkbook wb = new HSSFWorkbook();// 创建一个工作间
HSSFSheet sheet = wb.createSheet("sheet1");// 创建一个sheet
for (int i = 0; i < list.size(); i++) {
HSSFRow row = sheet.createRow(i);// 创建一行
row.setHeight((short) 500); // 行高
List listinfo = (List) list.get(i);
for (int j = 0; j < listinfo.size(); j++) {
sheet.setColumnWidth(j, 5000); // 列宽
HSSFCell cell = row.createCell(j);// 创建这行的第i个元素.从0开始
cell.setCellValue(listinfo.get(j).toString());// 写入内容
}
}
wb.write(response.getOutputStream());
response.setContentType("application/octet-stream;charset=GBK");
response.setHeader("Content-Disposition", "attachment;filename="
+ java.net.URLEncoder.encode(name + ".xls", "UTF-8"));// 客户端不缓存
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (IOException e) {
e.printStackTrace();
}
} 展开
下面是导出execl的公用方法,
/**
*list 保存的数据
*response
*name execl文件名字
*/
public static void createExecl(List list, HttpServletResponse response,
String name) {
try {
HSSFWorkbook wb = new HSSFWorkbook();// 创建一个工作间
HSSFSheet sheet = wb.createSheet("sheet1");// 创建一个sheet
for (int i = 0; i < list.size(); i++) {
HSSFRow row = sheet.createRow(i);// 创建一行
row.setHeight((short) 500); // 行高
List listinfo = (List) list.get(i);
for (int j = 0; j < listinfo.size(); j++) {
sheet.setColumnWidth(j, 5000); // 列宽
HSSFCell cell = row.createCell(j);// 创建这行的第i个元素.从0开始
cell.setCellValue(listinfo.get(j).toString());// 写入内容
}
}
wb.write(response.getOutputStream());
response.setContentType("application/octet-stream;charset=GBK");
response.setHeader("Content-Disposition", "attachment;filename="
+ java.net.URLEncoder.encode(name + ".xls", "UTF-8"));// 客户端不缓存
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (IOException e) {
e.printStackTrace();
}
} 展开
5个回答
展开全部
你在代码里面要先给文件加上后缀名啊,这个问题我也遇到过
更多追问追答
追问
你肯定没有看我写的代码!!
追答
你把你action的代码贴出来看看啊,这个公用方法应该没有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
保存后的文件名是怎么样的?
更多追问追答
追问
action 里面的第三个参数
ExeclUtil.createExecl(list,response,"exportList");
实际页面上导出的是名字则是上面截图的样子。
我用的其他action 调用此方法,完全可以正确导出数据。
追答
它进入方法了吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以换个浏览器试试 估计是浏览器兼容性问题
追问
同一个浏览器,在不同的action调用,有的可以成功,能成功的list的数据只有100条以内,超过100条就会出现上述情况
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,你解决了吗?我也遇到这问题了,急求结果..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我今天遇到这个问题解决了,原来是我配置文件配置错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询