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

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

  • 相关阅读:
    小木虫等论坛自动签到程序发布
    第一篇随笔
    工作和兴趣哪个更重要?
    weblogic 启动时 报错
    C#动态调用webservice (转载)
    U盘加载,卸载,拔出,插入(转载)
    Simple zip archive unzipper(转载)
    Best C# Blogs(强烈推荐)
    数据无法导入ArcSDE
    Oracle10.2.0.1.0升级Oracle10.2.0.2.0补丁安装指南(转载)
  • 原文地址:https://www.cnblogs.com/zhi-ming/p/10453185.html
Copyright © 2020-2023  润新知