java Excel表格 POI导出(下)

再次做excel表格导出,这次记录完整点。先导入poi依赖

		<dependency>
			<groupId>org.apache.poi</groupId>
		 	<artifactId>poi-ooxml</artifactId>
		 	<version>3.9</version>
		 	<!-- poi-ooxml 包含了3.9的poi-ooxml-schemas,所以在此处排除掉  -->
		 	<exclusions>
		        <exclusion>
		          <groupId>org.apache.poi</groupId>
		          <artifactId>poi-ooxml-schemas</artifactId>
		        </exclusion>
		    </exclusions>
		</dependency>

然后看下导出的excel样式。
在这里插入图片描述
这里,我将这张单分为三个部分导出,表头,表体,表尾。分别设计其样式,在数据填充的时候设计样式。先看表头,从第一行开始,填写单据名称

//创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
HSSFCell cell=row.createCell(0);
 //设置单元格内容
 cell.setCellValue("*******订单");
 //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
 sheet.addMergedRegion(new CellRangeAddress(0,0,0,9));

因为表头这里行数是可确定的,所以直接一行行创建,给表头设计统一样式。

public static HSSFCellStyle  sts1(HSSFWorkbook workbook){
        HSSFFont font = workbook.createFont();
        HSSFCellStyle styleList = workbook.createCellStyle();
        HSSFFont fontList = workbook.createFont();
        fontList.setFontHeightInPoints((short) 8);//字号
        fontList.setFontName("宋体");
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
        styleList.setFont(font);
        styleList.setWrapText(true);
        return styleList;
    }

详细操作展示

			//在sheet里创建第2行
            HSSFRow row2=sheet.createRow(1);
            //创建列
            HSSFCell  cellrow3 =row2.createCell(0);
            cellrow3.setCellValue("施工合同:");
            cellrow3.setCellStyle(sts1(wkb));
            HSSFCell  cellrow4 =row2.createCell(5);
            cellrow4.setCellValue("建单时间:");
            cellrow4.setCellStyle(sts1(wkb));
            //数据填充
            row2.createCell(1).setCellValue(headDto.getWorkContract());
            row2.createCell(6).setCellValue(headDto.getCreateDate());
            //单元格合并
            sheet.addMergedRegion(new CellRangeAddress(1,1,1,4));
            sheet.addMergedRegion(new CellRangeAddress(1,1,6,9));

然后是表体,这里获取的数据决定表体的长度,在创建行的时候,循环遍历加上之前的表头行即可。然后设计其样式

			HSSFCellStyle style = wkb.createCellStyle();
            HSSFFont font = wkb.createFont();
            font.setFontHeightInPoints((short) 10);//字号
            font.setFontName("宋体");
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平
            style.setFont(font);
            style.setWrapText(true);

在数据填充的时候,单元格设置样式即可。
最后是表体,这里就很简单了,简单的单元格合并就完事,上述代码中有单元格合并。这次的excel导出还是比较简单的,没有什么业务逻辑需要处理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值