• 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));

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

  • 相关阅读:
    C#动态调用webservice方法
    WinForm客户端调用 WebService时 如何启用Session
    C# 调用 Web Service 时出现 : 407 Proxy Authentication Required错误的解决办法
    ms sql 在任何位置 添加列
    Python requests
    LookupError: unknown encoding: cp65001
    [转]HTTP请求模型和头信息参考
    【原】使用StarUML画用例图
    【微信转载】Google是如何做测试的
    手机SD卡损坏补救措施
  • 原文地址:https://www.cnblogs.com/zhi-ming/p/10453185.html
Copyright © 2020-2023  润新知