execl中设置的格式无法实现

在一次项目中,需要导出execl表,并且要给表中的表格设置格式,因为每列的格式都不一样,需要单独设置设置这些格式,在后期使用中因为导入的数据过多,是的后面的单元格中设置的格式无法实现。

每次打开execl表格时都会出现以下提示

打开execl后会出现格式问题

这是因为execl中单元格格式超出限制无法保存。

查看代码后发现,在代码中给每次出现不同的单元格式后都是创建了一个HSSFCellStyle对象。解决办法就是讲HSSFCellStyle对象进行封装,每次调用的都是同一个HSSFCellStyle对象,然后对这个对象中的格式进行设置

 1 private HSSFCellStyle getCellStyleMode(HSSFCellStyle cellStyle, HSSFFont font, HSSFDataFormat format, int num) {
 2     cellStyle.setBorderTop(BorderStyle.THIN);
 3     cellStyle.setBorderBottom(BorderStyle.THIN);
 4     cellStyle.setBorderLeft(BorderStyle.THIN);
 5     cellStyle.setBorderRight(BorderStyle.THIN);
 6     cellStyle.setAlignment(HorizontalAlignment.CENTER);
 7     font.setFontName("Times New Roman");
 8     font.setFontHeightInPoints((short) 10);
 9     cellStyle.setFont(font);
10     if (num == 1) {
11         cellStyle.setDataFormat(format.getFormat("#,##0.00"));
12     } else {
13         cellStyle.setDataFormat(format.getFormat("#,##0.0"));
14     }
15         return cellStyle;
16     }

这样代码中对象减少,execl中保存的格式都是同一个对象,只是要对每个不同的单元格设置格式就行

 

转载于:https://www.cnblogs.com/houqx/p/10399702.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值