HSSFCellStylestyle=wb.createCellStyle();、style.setLocked(true);这段代码我试过不好使.另外本来是想锁死这ex... HSSFCellStyle style = wb.createCellStyle(); 、
style.setLocked(true);
这段代码我试过 不好使.
另外本来是想锁死这excel的.就是无论是谁都不可以改.但不知道有没有这方法.
所以只想让下载出的excel是只读的.不让用户乱改数据.应该怎么办?

PS:我不是要锁单元格 是整个excel 因为我往里面导入了一张透明的图片.这个图片位置不能变. 但用户只要下载下载他就可以乱拖或删除.所以要弄个只读来保护.
这两行是什么意思? 第一行我可以看成是获取excel模版.但第2行那个创建excel是什么意思???
Workbook work = Workbook.getWorkbook(new File("D://test.xsl"));//Excel获得文件
WritableWorkbook book = Workbook.createWorkbook(new File("D://test.xsl"));//这个是创建excel

Workbook work = Workbook.getWorkbook(new File("D://test.xsl"));//Excel获得文件
获取不到work 我不知道是怎么回事. 是null

WritableWorkbook book = Workbook.createWorkbook(new File("D://test.xsl"));//
获取到的book基本都是空的. 而且本地已经有数据的excel也变成了0kb 我不知道是读取到了还是给替换成了个空的. Workbook work = Workbook.getWorkbook(new File("D://test.xsl"));//Excel获得文件
WritableWorkbook book = Workbook.createWorkbook(new File("D://test.xsl"));//这个是创建excel
上面你选择你 得到 book的方式

WritableSheet sheet = book.getSheet(0);
sheet.getSettings().setProtected(true);
这样是锁上了整个excel
sheet.getSettings().setPassword("12345678") ;
这个是解锁的时候所设置的密码
望采纳
刚想问你怎么得到book.....
你这个的意思是先把excel保存到本地.然后在去修改他的属性吗?

这个是jxl的??不是poi的吗?
我程序生成的excel是不放在本地的.直接变成流到网页让客户下.
不是保存到本地,这只是举个例子,可以直接保存到你自己的服务器上,这样客户也直接可以在网页上下载下来啊,这个是jxl,我只是感觉相对的jxl简单点,起码在操作excel上 jxl的用处大点。
我先用poi生成了一个excel在本地.然后在用
WritableWorkbook book = Workbook.createWorkbook(new File("D://test.xsl"));
来读取我刚才创建的excel.
我用断点看的里面都是乱码 然后
WritableSheet sheet = book.getSheet(0);
换成book.getSheet(1);也不对.

这步就报错了.
第一步先获得 你产生的 excel 
Workbook work = Workbook.getWorkbook(new File("D://xxx.xsl"));//加入在D盘
第二步 在D盘中产生一个 test的excel
WritableWorkbook book = Workbook.createWorkbook(new File("D://test.xsl"),work);//
这样就能操作 book