java 生成Excel文件:结合数据集合
导入jxl包
?
//1请求对象。2、相对路径。3、文件名称,4、标题名称。5、集合public void excel(HttpServletRequest request,String path,String fileName,String titleName,List<SdProduct> list) {try {//使用WritableCellFormat 的setWrap(true)可以设成自动换行,然后再用WritableSheet的setRowView设置行的高度,setColumnView设置列的宽度WritableWorkbook wbook = Workbook.createWorkbook(new File(request.getRealPath(path) + "\\"+fileName)); // 建立excel文件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, titleName, 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();}}?