导出简单Excel模板(通用)

poi导出简单Excel模板(通用)

通用的表头模板下载,需要填入表头名称;
main:

String[] title = new String[]{"主合同号", "结清日期", "贷款起期", "贷款止期", "贷款金额"};
createDownExcel(Arrays.asList(title), response, "结清清单模板.xls", "application/vnd.ms-excel");

业务逻辑

/**
	 * 生成下载模板
	 *
	 * @param titles 生成得表头
	 * @param fileName 生成的文件名
	 * @param contentType contentType
	 */
	public void createDownExcel(List<String> titles, HttpServletResponse resp, String fileName, String contentType) throws Exception {
		resp.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
		resp.setContentType(contentType);
		resp.setCharacterEncoding("UTF-8");
		ExportExcelUtils.createDownTemplate((Row row) -> {
			HSSFPatriarch p =  (HSSFPatriarch)row.getSheet().createDrawingPatriarch();
			for (int i = 0; i < titles.size(); i++) {
				Cell cell = row.createCell(i);
				cell.setCellType(CellType.STRING);
				String strVal = titles.get(i);
				if( strVal.contains("@") ) {
					HSSFComment comment = p.createComment(new HSSFClientAnchor(i+1, 0, i+1,0, (short) 3, 3, (short) 5, 6));
					// 输入批注信息
					String []arrs = strVal.split("@");
					comment.setString(new HSSFRichTextString(arrs[1]));
					// 将批注添加到单元格对象中
					cell.setCellComment(comment);
					cell.setCellValue(arrs[0]);
				} else {
					//写入数据
					cell.setCellValue(strVal);
				}
			}
		}, resp.getOutputStream());
	}

ExportExcelUtils.java

//生成下载模板
    public static void createDownTemplate(POICallBack callBack, OutputStream os) {
        HSSFWorkbook book = null;
        try {
            //创建table工作薄
            book = new HSSFWorkbook();
            HSSFSheet sheet = book.createSheet("Sheet1");
            //创建标题行
            HSSFRow rowTitle = sheet.createRow(0);
            callBack.doInPOI(rowTitle);
            book.write(os);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (null != book) {
                try {
                    book.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

POICallBack.java

public interface POICallBack {
    void doInPOI(Row row) throws Exception;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值