填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作。
报表导出为excel时,润乾导出excel包默认情况下不对excel单元格属性进行特殊修改,当导出的报表为填报表时,报表中设定的单元格可写属性并不能在导出后的excel中体现,也就是说无论是可写还是非可写的单元格都会在excel中变成普通单元格,而恰恰一些客户在导出excel后会对excel进行修改然后再将excel导入报表,这时候就必然需要导出后的excel中单元格的可写非可写属性要和报表中的一致,此时就需要导出excel的报表中的非可写单元格在excel中锁定。
解决思路:
通过Java类来操作excel文件每个单元格的属性是很容易实现的,我们这里用到了jxl这个java操作excel类来实现功能。
思路:不使用润乾提供的导出excel方法,直接通过自定义按钮调用java代码实现对导出非可写单元格的锁定:
1.在导出excel的过程中,要先遍历报表中的所有单元格取得所有数据。
2.在这个遍历过程中做一个操作,将遍历到的可写单元格存在一个数组里。
3 .遍历完后用润乾导出excel类导出excel。
4 .通过jxl类操作excel文件,从第二步中建立的数组中取出可写单元格,并设置这些单元格不锁定,其他的单元格设置为锁定。
下面列出部分代码
//生成Excel文件
String saveFile = request.getRealPath(“/reportFiles/”) +“/”+ reportFile +“.xls”;
ExcelReport eReoprt
本文介绍了如何在Java中导出Excel时保持填报表单元格的锁定状态。当报表导出为Excel时,默认情况下所有单元格都会变为普通单元格,但为了保持与填报表一致,需要锁定非可写单元格。解决方案是使用jxl库,遍历报表数据,记录可写单元格并设置其解锁,其他单元格锁定。最终代码示例展示了如何实现这一功能。
最低0.47元/天 解锁文章
1802

被折叠的 条评论
为什么被折叠?



