java导出excel锁定状态_填报表导出excel后不可写的单元格处于锁定状态
填报表单元格分为可写和不可写两种状态,当填报表在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 =newExcelReport();
eReoprt.export(iReport);
FileOutputStream fos =newFileOutputStream(saveFile);
eReoprt.saveTo(fos);
fos.close();
//jxl锁定单元格====================================================================
Workbook jxlwb=null;
WritableWorkbook book=null;
try{
jxlwb=Workbook.getWorkbook(newFile(saveFile));
book=Workbook.createWorkbook(newFile(saveFile),jxlwb);
WritableSheet sheet = book.getSheet(0);
for(inti=0;i
String[] point=(String[])cellList.get(i);
introwNum =Integer.parseInt(point[0].trim())-1;
intcolNum =Integer.parseInt(point[1].trim())-1;
//获取单元格对象
WritableCell wCell = sheet.getWritableCell(colNum, rowNum);
CellFormat cf = wCell.getCellFormat();
WritableCellFormat wcf =newWritableCellFormat(cf);
//去除可写单元格锁定状态
wcf.setLocked(false);
wCell.setCellFormat(wcf);
}
//打开sheet保护
sheet.getSettings().setProtected(true);
book.write();
}catch(Exception e){
}finally{
book.close();
jxlwb.close();
}
out.println(“Excel文件生成结束,文件保存在:”+ saveFile);
下面用个例子检验一下效果:
上图是报表在复杂报表设计" target="_blank" class="quieeLink1">设计器中的样子,A1、C1单元格是可写的,其他单元格是不可写的。打开经上面的代码导出的excel
可以看出A1单元格是可修改的,当选择A2单元格时,会弹出一个提示,说明这个单元格是受保护的,不能修改的。
java导出excel锁定状态_填报表导出excel后不可写的单元格处于锁定状态相关推荐
- 填报表导出excel后不可写的单元格处于锁定状态
填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作. 报表导出为excel时,润乾导出excel包默认情况下不对excel单 ...
- 填报表导出excel非可写单元格锁定问题
问题描述: 填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作. 报表导出为excel时,润乾导出excel包默认情况下不对 ...
- 行式填报表导入excel数据直接入库
由于行式填报在导入excel的数据量比较大的时候,页面加载数据会很慢,在这种情况下可以采取后台直接导入数据库的方法,实例如下: package example; import java.sql. ...
- excel减法函数_会计小白的EXCEL学习笔记
随着信息化的发展,原本浑浑噩噩想着混吃等死的二胎妈妈的我,经过这段时间设计合同台账,突然觉得很丧,妥妥的强烈危机感啊~于是乎下定决心得加快提升自己了. 那么对于财会行业,excel是必备技能,一方面可 ...
- excel函数大全_让你的EXCEL工作效率翻倍的函数大全
详细的函数说明和应用实例可查看我上传的<EXCEL快速学习教程视频>对应各类函数教程 常用函数大全 使用函数:公式选项卡>函数库>插入函数.常用函数.最近使用函数.财务.逻辑. ...
- POI导出excel--设置字体,颜色,行高自适应,列宽自适应,锁住单元格,合并单元格
1. 前言 poi框架可以支持我们在java代码中, 将数据导出成excel , 在上一篇 如何使用POI导出excel表格,以及处理浏览器无法识别下载文件的问题 中已经详细的进行了介绍 , 但是实际 ...
- python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...
- 设置ALV单元格可编辑状态
在使用ALV显示列表的过程中,我们可以使用IT_FIELDCAT参数设置某一个字段的可编辑状态.但是,要设置具体的单元格的可编辑状态对于对ALV不是很了解的人来说是一个头大的问题. 具体单元格可编辑状 ...
- python创建工作簿_创建工作簿、工作表和写入单元格
---------------------------------------------------------------- 学完本课程可继续巩固篇:https://edu.51cto.com/c ...
- 关于JAVA POI解析WPS docx文档中的table(复杂表格包含单元格横向,纵向的合并)
关于JAVA POI解析WPS docx文档中的table(复杂表格包含单元格横向,纵向的合并) 首先,关于poi解析表格先阅读一篇他人的博客 使用poi读取word2007(.docx)中的复杂表格 ...
最新文章
- Ext结合DWR的关键代码(运行成功的DWRProxy)
- CIR:2020年全球数据中心应用AOC市场达$42亿
- 2-4. BCD解密(10)
- python open word_使用Python在OpenOffice / Microsoft Word中格式化输出
- java web 项目打成war包部署到服务器上
- favicon.ico--网站标题小图片二三事
- 重温6 ListView相关|单位dp/sp
- html代码 打开本地文件,打开本地HTML文件
- MFC中使用FLASH相关
- 【数据处理】reshape2包
- 知名厂商设备图标库大全
- Linux性能测试(UnixBench)(bench)一键脚本
- java 解析json数据流的几种方式
- 网络故障排查的思路和方法
- VS2019 MFC模式下如何调用控制台并用cprintf在控制台打印
- V4L2视频驱动程序开发之驱动方法poll 和 应用程序select
- debian 6.0.5下RT5370无线网卡驱动安装
- 硬齿面齿轮减速机与软齿面的区别
- Linux下载文件命令wget的一些用法
- Java中Thread详解(一篇就够了)
热门文章
- 一款PC端抖音去水印工具V1.86
- gif动图怎么制作?怎么截取视频做成gif动图?
- Indented Inventory BOM如何转为最终的单层采购BOM
- 扫外部二维码进入小程序,并且在小程序内获取二维码链接
- 使用burpsuite对手机端APP抓包
- uni-app如何发送请求调用接口
- 数据管理与数据库 大学课程_根据数据,这50种最好的免费在线大学课程
- oracle按月统计按季度统计,Oracle数据库按月统计(候,旬,月,季,年)
- python覆盖写文件_python写文件时覆盖原来的代码方法实例
- 基于TI DRV8424驱动步进电机实现调速和行程控制