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("&nbsp;", ""));
				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();

		}

	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值