生成Excel并下载 JXL方式(去除html标签)
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream os = response.getOutputStream();// 取得输出流
response.reset();// 清空输出流
//不能用用中文设置 filename,会出错
response.setHeader("Content-disposition", "attachment; filename=stu.xls");// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
List<SdProduct> list = new ArrayList<SdProduct>();// 这个是从数据库中取得要导出的数据
SdProduct sdp = new SdProduct();
sdp.setSdTitle("<div>供应瑞丽女装服装代理,原单,外贸日韩女裤打底裤<div>");
sdp.setSdConName("周清香女士");
sdp.setSdMobile("123456789");
sdp.setSdTel("123456789");
sdp.setSdComment("<div><div><palign='left'><imgalt='' src='http://www.gzlaike.com/word/laike01.jpg'style='VISIBILITY:visible'/></p><palign='left'><spanstyle='FONT-SIZE:xx-large'><spanstyle='COLOR:#ff0000'>秋冬季节不管是做内衣打底,还是外穿,与靴鞋是最佳搭配,莱可制衣的精心做工,精梳全棉密根面料,非常舒适贴身,弹性也很好,拉伸无“漏网”原批发价24元,现特价16元,市场上10元打底无法与之相提并论,请勿议价!!</span></span></p><div>【编号】T314</div><div>【质地】纯棉,有弹力</div><div>【颜色】黑色,紫色,灰色,蓝色,咖啡</div><div>【标牌】全新包装带吊牌领标水洗标</div><div>【尺码】均码</div><div>【重量】0.15KG</div><div>【尺寸参照】腰围:52-88CM全长:89CM手工平铺测量有弹力");
list.add(sdp);
try {
// 使用WritableCellFormat
// 的setWrap(true)可以设成自动换行,然后再用WritableSheet的setRowView设置行的高度,setColumnView设置列的宽度
//WritableWorkbook wbook = Workbook.createWorkbook(new File(request.getRealPath(path)+ "\\" + fileName)); // 建立excel文件
WritableWorkbook wbook = null;
wbook = Workbook.createWorkbook(os);
WritableSheet wsheet = wbook.createSheet("工作表名称", 0); // 工作表名称
// 设置Excel字体
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 14,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.RED);
WritableFont font = new WritableFont(WritableFont.ARIAL, 12,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
WritableCellFormat nameFormat = new WritableCellFormat(wfont);
WritableCellFormat titleFormat = new WritableCellFormat(font);
String[] title = { "标 题", "联系人", "座 机", "手 机", "简 介" };
// 设置Excel标题头
wsheet.mergeCells(0, 0, 5, 0); // 合并单元格
Label excelTitle1 = new Label(0, 0, "XXXXX:关键词—服装 的供应信息", nameFormat);
wsheet.addCell(excelTitle1);
// 设置Excel表头
for (int i = 0; i < title.length; i++) {
Label excelTitle = new Label(i, 1, title[i], titleFormat);
wsheet.addCell(excelTitle);
}
int c = 2; // 用于循环时Excel的行号
Iterator it = list.iterator();
while (it.hasNext()) {
SdProduct sd = (SdProduct) it.next();
Label content1 = new Label(0, c, sd.getSdTitle().replaceAll(
"<[^>]*>", ""));// 去掉HTML的所有标签
Label content2 = new Label(1, c, sd.getSdConName());
Label content3 = new Label(2, c, sd.getSdMobile());
Label content4 = new Label(3, c, sd.getSdTel());
String comment = sd.getSdComment().replaceAll("<[^>]*>", "");
Label content5 = new Label(4, c, comment.replaceAll(" ",
""));
wsheet.setColumnView(0, 40);
wsheet.setColumnView(1, 12);
wsheet.setColumnView(2, 13);
wsheet.setColumnView(3, 14);
wsheet.setColumnView(4, 50);
wsheet.addCell(content1);
wsheet.addCell(content2);
wsheet.addCell(content3);
wsheet.addCell(content4);
wsheet.addCell(content5);
c++;
}
wbook.write(); // 写入文件
wbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}