zoukankan      html  css  js  c++  java
  • java 导出自定义样式excel

    由于项目需要 要求导出一个这样的表格

    然而 正常导出的表格都是这样婶儿地

    这种格式网上demo有很多就不详细说了 ,主要说说上面三行是怎么画的。

    第一行大标题,是9行合并成的一行,而且字体大小需要单独设置

    HSSFSheet sheet;
    HSSFCell cell;
    response.setContentType("application/octet-stream");
    response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
    sheet = workbook.createSheet("物料调拨单");
    		
    //第一行大标题
    HSSFCellStyle tStyle = workbook.createCellStyle(); 
    tStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    tStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    HSSFFont tFont = workbook.createFont();	//标题字体
    tFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    tFont.setFontHeightInPoints((short)15);
    tStyle.setFont(tFont);
    short twidth = 15,theight=25*20;
    sheet.setDefaultColumnWidth(twidth);
    cell = getCell(sheet,0,0);
    cell.setCellStyle(tStyle);
    setText(cell,"物料调拨单");
    sheet.getRow(0).setHeight(theight);
    sheet.addMergedRegion(new CellRangeAddress(0,0,0,8));

    sheet.addMergedRegion(new CellRangeAddress(0,0,0,8)); 这个就是合并单元格方法,需要传入4个int行的参数,

    分别是 起始行,结束行,起始列,结束列。因为我们需要在第一行显示1个9个格的标题所以行就是从0到0,列是从0到8

    同理: 下面2行可以这么设置合并

    sheet.addMergedRegion(new CellRangeAddress(1, 1, 1, 2));
    sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 2));
    sheet.addMergedRegion(new CellRangeAddress(1, 1, 4, 5));
    sheet.addMergedRegion(new CellRangeAddress(2, 2, 4, 5));
    sheet.addMergedRegion(new CellRangeAddress(1, 1, 7, 8));
    sheet.addMergedRegion(new CellRangeAddress(2, 2, 7, 8));

    由于合并单元格,值取的是第一个单元格的值,所以后面的单元格可以直接赋值为空

  • 相关阅读:
    http经典解析
    js实现canvas保存图片为png格式并下载到本地
    你所不知的 CSS ::before 和 ::after 伪元素用法
    js自动下载
    CSS 实现隐藏滚动条同时又可以滚动
    checkbox与文字对齐
    利用html2canvas截图,得到base64上传ajax
    bootstrap-datepicker简单使用
    移动端禁止滚动
    h5移动网页唤起App
  • 原文地址:https://www.cnblogs.com/zhi-ming/p/10453185.html
Copyright © 2011-2022 走看看