Java poi导出设置 Excel某些单元格不可编辑
小白的总结,大神勿喷;需要转载请说明出处,如果有什么问题,欢迎留言
一、需求:
1、某一列 、某一行或某些单元格不可编辑,其他列可以编辑
二、期间遇到的问题
1、无法设置成不可编辑
2、设置为不可编辑,导出后发现所有单元格均不可编辑;
原因:createCell();创建单元格后,单元格默认是锁定状态;protectSheet("密码");保护工作表是保护所有锁定的单元格;
三、解决问题
不多BB,直接上代码
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet名称"); HSSFCellStyle lockstyle = wb.createCellStyle();
lockstyle.setLocked(true);//设置锁定
lockstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
lockstyle.setFillForegroundColor(IndexedColors.RED.getIndex());//设置上锁的单元格背景色 HSSFCellStyle unlockStyle=wb.createCellStyle();
unlockStyle.setLocked(false);//设置未锁定 for(int i=0;i<10;i++){
HSSFRow row = sheet.createRow(i);
for (int j = 0; j < 10; j++) {
HSSFCell cell = row.createCell(j);
cell.setCellStyle(unlockStyle);//默认是锁定状态;将所有单元格设置为:未锁定;然后再对需要上锁的单元格单独锁定
if(j==1){//这里可以根据需要进行判断;我这就将第2列上锁了
cell.setCellStyle(lockstyle);//将需要上锁的单元格进行锁定
cell.setCellValue("上锁了");
}else{
cell.setCellValue("没上锁了");
}
}
}
//sheet添加保护,这个一定要否则光锁定还是可以编辑的
sheet.protectSheet("123456");
FileOutputStream os = new FileOutputStream("D:\\workbook.xls");
wb.write(os);
os.close();
四:结果


Java poi导出设置 Excel某些单元格不可编辑的更多相关文章
- POI导出复杂Excel,合并单元格(1)
/** * 导出复杂excel 合并单元格 (HSSFWorkbook) */ @GetMapping("/testHSSFWorkbook.do") public void te ...
- C#.Net 导出Excel 之单元格 相关设置
range.NumberFormatLocal = "@"; //设置单元格格式为文本range = (Range)worksheet.get_Range("A1 ...
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
- NPOI之Excel——合并单元格、设置样式、输入公式、设置筛选等
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- NPOI之Excel——合并单元格、设置样式、输入公式
首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"
Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...
- Excel的单元格设置下拉选项并填充颜色
如何在Excel的单元格中加入下拉选项 方法/步骤 第一步:打开excel文档,选中需加入下拉选项的单元格. 第二步:点击菜单中的“数据”->“数据有效性”->“数据 ...
- excel设置单元格不可编辑
把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.
- Excel根据单元格内容设置整行颜色
1. 选择需要设置的区域,条件格式中找到“新建规则” 2. 弹出窗口中选择“使用公式确定要设置格式的单元格”一项.填写公式如下: =IF(OR($D1="已完成",$D1=&quo ...
随机推荐
- 【不费脑筋系列】发布个人的代码包到Nuget服务器上,并通过VS引用进行使用的方法
打打酱油,写点不需要费脑筋的博客先压压惊. 下面讲个关于个人如何开发nuget包,并部署到nuget服务器上的例子.为了保证.net framework和 .net core都可以访问到我的包,我 ...
- Python基础(数据类型与变量、字符串和编码)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # name = 200 # if name > 100: # print(name,'大于100' ...
- Go iota 原理和源码剖析
iota 是 Go 语言的一个保留字,用作常量计数器.由于 iota 具有自增特性,所以可以简化数字增长的常量定义. iota 是一个具有魔法的关键字,往往令初学者难以理解其原理和使用方法. 本文会从 ...
- eclipse查看jar包源代码
方法一:将jd-gui集成在Eclipse中 https://jingyan.baidu.com/article/b24f6c8275536686bfe5daed.html 下载2个反编译文件, ...
- [loj6033]棋盘游戏
将棋盘黑白染色,即构成一张二分图 将状态用一张二分图$G$和一个点$x\in V$描述(分别为仍未被经过的点的导出子图和当前棋子所在位置),并称将要移动棋子的一方为先手 结论:先手必胜当且仅当$x$一 ...
- 如何删除一个win10的服务
使用场景: 之前电脑玩腾讯qq微端游戏,后来卸载残留服务一直在后台占用系统资源.那么如何关闭这个服务呢. 1.首先 管理员运行--cmd.exe 2.打开任务管理器,找到服务名称,如果服务开启可以关闭 ...
- 多线程01.newThread的方式创建线程
1.java应用程序的main函数是一个线程,是被jvm启动的时候调用,线程的名字叫main 2.实现一个线程,必须创建一个thread实例,override run方法,并且调用start方法. 3 ...
- 了解Threejs中的Clock对象以及简单应用
什么是Clock对象 如果你对 JavaScript 有一定了解,那么 JavaScript 的时间对象 Date 你一定不陌生,Clock 本质上就是对 Date 进行封装,提供了一些方法和属性 当 ...
- 【2020五校联考NOIP #6】三格缩进
题意: 给出 \(n\) 个数 \(a_1,a_2,\dots,a_n\),你要进行 \(m\) 次操作,每次操作有两种类型: \(1\ p\ x\):将 \(a_p\) 改为 \(x\). \(2\ ...
- YAOI Round #1 (Div.2) 题解
总体来说很有一定区分度的(主要分为 4 题.2 题.1 题几档),ACM 赛制也挺有意思的,征求一下大家对这场比赛的意见吧,可以在这个帖子下回复,我都会看的. 简要题解:( A. 云之彼端,约定的地方 ...