基于XSSFWorkbook 实现POI设置指定列为文本格式

基于XSSFWorkbook 实现POI设置指定列为文本格式

写在前面

需求是通过XSSFWorkbook来实现Excel导出数据功能的.并限制文件的某一列单元格格式为文本格式.作为开发来说,原本认为这是个很简单的需求,但实际搞起来…

第一次修改

把某一列作为一个整体进行处理,代码如下:

// 创建workbook工作薄
XSSFWorkbook xssfWorkbook= new XSSFWorkbook();
// 样式
XSSFCellStyle commonStyle = xssfWorkbook.createCellStyle();
// 设置为文本格式
DataFormat format = xssfWorkbook.createDataFormat();
commonStyle.setDataFormat(format.getFormat("@"));
XSSFSheet sheet = wb.createSheet();

// 对单独某一列进行样式赋值,第一个参数为列数(从0开始),第二个参数为样式 所有列的话,循环列进行操作即可
sheet.setDefaultColumnStyle(i, style);

搞完之后,导出文件查看列格式
在这里插入图片描述
在这里插入图片描述

这同一个列 ,有数据的和没数据的单元格格式咋还不一样了捏…,不说产品会不会满意了,我是不能接受的,继续改吧.

第二次修改

在导出数据的时候,有对应的循环添加数据,在那里面添加文本格式就行了.

// 设置为文本格式
DataFormat format = xssfWorkbook.createDataFormat();
commonStyle.setDataFormat(format.getFormat("@"));
// 在每一个单元格中添加此文本格式配置

// 循环获取行信息
for (int i = 0; i < list.size(); i++) {
		Row tempRow = sheet.createRow(4 + i);
		// 行中的列数据,
		for (int i1 = 0; i1 < headerList.size(); i1++) {
			// 获取有数据的单元格
		 	Cell tempCell = tempRow.createCell(i1);
		 	~~~ 其他业务处理,上面的也是原业务逻辑,自己没动,懒人一个~~~
		 	// 设定文本格式
		 	 tempCell.setCellStyle(commonStyle);
		}
}

导出文件,导出文件查看列格式
在这里插入图片描述

搞定!!

总结

导出Excel时候,指定列的单元格格式,需要注意整列的单元格格式是否一样,XSSFWorkbook 可以这样操作,HSSFWorkbook也是可以的,文本格式可以,数字格式,百分比格式也是可以的,POI可以,EasyExcel…暂时还没试,有时间搞下.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值