HSSFWorkbook 锁定部分单元格,或者锁定一个单元格
最近的项目中用到了poi方式创建excel文件,
某些单元格要进行锁定,某些单元格需要进行填写选项的预设值,
发现有两种需求
1、锁定大部分的单元格
2、只锁定某一个单元格
就以上两种情况,有不同的解决办法
需求1:锁定大部分的单元格
1.1创建Excel 及其sheet
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("锁定大部分单元格的Excel");
1.2如果要锁定单元格,必须给shee设置密码,默认excel的sheet对应的单元格全部锁定
给锁定的单元格设置密码 !!,密码为 ”edit“
sheet.protectSheet("edit");
1.3 给不需要锁定的单元格解锁
1.3.1 创建一个不锁定的cellstyle
public HSSFCellStyle unLockStyle(HSSFWorkbook workbook) {HSSFCellStyle cellStyle = workbook.createCellStyle();cellStyle.setLocked(false);return cellStyle;}
1.3.2 创建不锁定的单元格并解锁
for (int i = 3; i < 100; i++) {row = sheet.createRow(i);// 创建普通单元格,这个单元格是最普通的锁定状态的for (int j = 0; j < width; j++) {cell = row.createCell(j);HSSFCellStyle cellStyle2 = workbook.createCellStyle();cell.setCellStyle(unLockStyle(workbook));}}
以上就创建了不锁定的单元格,除了第3行到100行的0到width列外,其他都是锁定状态
需求2:只锁定某一个单元格
2.1创建excel及其sheet
HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.createSheet("只锁定某一个单元格");
2.2 创建锁定的方法
void setDataValidation(HSSFCell cell) {// 单元格设置数据有效性DVConstraint constraint = DVConstraint.createNumericConstraint(DVConstraint.ValidationType.INTEGER, DVConstraint.OperatorType.GREATER_OR_EQUAL, "0", null);//设置数据有效性加载在哪个单元格上。//四个参数分别是:起始行、终止行、起始列、终止列CellRangeAddressList regions = new CellRangeAddressList(cell.getRowIndex(), cell.getRowIndex(), cell.getColumnIndex(), cell.getColumnIndex());//数据有效性对象HSSFDataValidation data_validation = new HSSFDataValidation(regions, constraint);//加入sheetsheet.addValidationData(data_validation);}
2.3 创建第3行第6列的单元格
HSSFRow row = sheet.createRow(3);HSSFCell cell = row.createCell(6);
2.4 锁定这个单元格
this.setDataValidation(cell, sheet);
2.2里面分方法可以不懂,只要调用,并将cell和sheet作为实参传入就可以了
2.5效果如下
如有错误,请各位指正
HSSFWorkbook 锁定部分单元格,或者锁定一个单元格相关推荐
- mysql group_concat去重_mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格...
mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- ------------- ...
- Excel快速将多个单元格合并到一个单元格
在工作或生活中,对于小批量的数据我们习惯用Excel来处理,经常可能会面临这样的问题--如何把多个单元格数据合并到一个单元格.实现这一效果的方式有很多种,比如CONCATENATE函数.连接符& ...
- excel公式 某一个单元格等于另一个单元格的值_EXCEL函数学习5——COUNTIF函数
[标签] excel函数.统计函数 前面我们学习了COUNT函数,我们回顾一下: count函数很简单,就是统计一个或多个区域的数字个数.相对来说,countif函数多了一个if,也就是可以增加条件了 ...
- excel公式 某一个单元格等于另一个单元格的值_15个excel小技巧,简单易学,一看就会,收藏备用吧...
hello,大家好,今天跟大家分享15个excel小动画,如果工作中遇到类似的问题即可快速搞定,话不多说,让我们直接开始吧 1.利用查找统计单元格颜色 首先我们按ctrl+f查找窗口,然后点击旁边的格 ...
- phpexcel导出大量数据合并单元格_PHPExcel处理一个单元格内多条数据拆分成多个单元格多条数据...
日期: 2020年6月17日 分类: PHP Tags: Excel 阅读量: 1,221 一.描述需求 如图,当我们遇到一条数据中,某一项内容有多条数据,为了方便文档查阅,我们需要在那一项数据进行拆 ...
- 计算机分配回县考取比率,打开工作簿文件 EXCEL.XLSX : (1) 将 Sheet1 工作表的 A1 ∶ D1 单元格合并为一个单元格_题来了...
解析 : ( 1 )[解题步骤] 步骤 1 :单击"考生文件夹"按钮,打开 EXCEL.XLSX 文件,选中 Sheet1 工作表的 A1 ∶ D1 单元格,在[开始]功能区的[对 ...
- Excel 多个单元格合并到一个单元格中的函数
1.=CONCATENATE("('",A2,"','",B2,,"','",C2,"','",D2,"',' ...
- ios 获取最后一个cell_关于ios:向UICollectionView的第一个和最后一个单元格添加填充...
我子类化UICollectionViewFlowLayout以获取具有分页行为的水平UICollectionView. 只要UICollectionViewCell不是最后一个单元格,它就可以很好地工 ...
- php把1拆分成三份,谁知道Excel电子表格怎么把一个单元格分3份(分成3个三角)! | excle表格怎么分割三份...
请问,excel表格的单元格怎么一分为二或一分为三,是拆分,与合并无关,请高手指教 excel拆分已合并的格的步骤: 三行单元格目前处于一个单元格状态. 选还原的单元格,右键鼠标,在工具栏中选择快捷转 ...
- 使用EasyExcel 根据单元格数值动态合并单元格
文章目录 前言 一.实现思路 二.实现步骤 1.拦截策略 2.EasyExcel写操作 前言 使用EasyExcel 根据单元格数值动态合并单元格 开发中遇到一个需求,需要根据Excel表格中单元格的 ...
最新文章
- metasploit快速入门(二)收集信息
- BZOJ2843: 极地旅行社
- python不能安装pip_python – 无法安装pip:权限被拒绝错误
- BundlePhobia
- php智能裁剪黑边,图片裁剪去除黑边
- php注入教程,php注入点构造代码实例详解
- 错误用的两个方法之间的区分
- linux查看u盘的分区格式化,linux U盘格式化ext3
- 手机桌面便签怎么绑定手机号?
- HTML短信测压引流源码
- iosbanner_ios图片的局部拉伸-------App首页banner图的iPhone X适配
- Frida调用静态函数和非静态函数
- CSDN写文章Markdown个人笔记
- 在SAGE系列期刊上发表论文
- 测试工程师之【python】按工龄开始日期和司龄开始日期计算当年法定年假
- 深度学习的不确定性(Uncertainty/confidence score)与校准(Calibration)
- 东北大学计算机难度,东北大学考研难吗
- 用Python自定义一个时钟类、定时任务类
- 什么是过拟合?|代码+详细注释
- php第一章:4.Apache加载php模块 且分配工作给php