java使用jxl生产并下载excel的案例,并解决了乱码问题,本程序的目的好处就是不在服务器生产excel文件,当然你想在服务器生成excel文件存档,直接加一句代码就可以 了,这里就不多说了,没有jxl jar包的可以自己在网上下载public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("texthtml;charset=utf-8");
OutputStream myout=response.getOutputStream();
WritableWorkbook wb =Workbook.createWorkbook(myout);
try {
WritableSheet sheet=wb.createSheet("器官捐献志愿者统计表", 0);
设置表头
Label label=null;
label =new Label(0, 0, "编号");
sheet.addCell(label);
label =new Label(1, 0, "姓名");
sheet.addCell(label);
label =new Label(6, 0, "年龄");
sheet.addCell(label);
label =new Label(7, 0, "性别");
sheet.addCell(label);
label =new Label(8, 0, "籍贯");
sheet.addCell(label);
看到这里你应该都懂了,是的你可以在这里加入更多的数据
response.setContentType("applicationoctet-stream;charset=UTF-8");
String name = "统计表.xls";
String userAgent = request.getHeader("User-Agent").toLowerCase();
byte[] bytes = userAgent.contains("safari") ?name.getBytes("UTF-8"):name.getBytes("gbk"); name.getBytes("UTF-8")处理safari的乱码问题
name = new String(bytes, "ISO-8859-1"); 各浏览器基本都支持ISO编码
response.setHeader("Content-disposition", String.format("attachment;filename=\"%s\"", name));
wb.write();
} catch (Exception e) {
TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
wb.close();
myout.close();
} catch (WriteException e) {
TODO Auto-generated catch block
e.printStackTrace();
}
}
}