当前位置: 首页 > 面试题库 >

使用Apache POI在Excel中锁定单列

郑松
2023-03-14
问题内容

我想创建一个Excel,其中只有特定的列被锁定(只读),其余的是可编辑的,

我正在使用以下方法,但这似乎不起作用。

创建两个CellStyle,一个带有setLocked(true),另一个带有setLocked(false)。

然后将锁定样式应用于需要锁定的列中的所有单元格,并将解锁样式应用于所有其他单元格。

使用sheet.protectSheet(“”);保护工作表

但是,当我在开放式办公室中打开创建的Excel时,我注意到所有单元格都被锁定了!

它们都不是可编辑的。

如何达到上述要求?

PS:我不能使用数据验证方法。


问题答案:

如果您做相反的工作。保护整个工作表,并呼吁setLocked(false)应该可编辑的单元格。

String file = "c:\\poitest.xlsx";
FileOutputStream outputStream = new FileOutputStream(file);
Workbook wb = new XSSFWorkbook();

CellStyle unlockedCellStyle = wb.createCellStyle();
unlockedCellStyle.setLocked(false);

Sheet sheet = wb.createSheet();
sheet.protectSheet("password");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("TEST");
cell.setCellStyle(unlockedCellStyle);

wb.write(outputStream);
outputStream.close();


 类似资料:
  • 用户可以将Excel文档保存为. xls或xml-table。结果是一个具有固定结构的xml-file,Excel可以用它纠正工作。 可以用java中的ApachePOI打开这种类型的excel文件吗? 事先谢谢你,安德烈。

  • 嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。

  • 我正在使用Poi.jar从excel表输入,想知道如何检查单元格是否为空。 现在我使用下面的代码。

  • 我使用Apache POI库来保护excel表,我保持一些单元格解锁和锁定其余的单元格,另外我隐藏了一些列。但是当用户使用Ctrl+A选择所有列时,他/她可以复制所有数据,包括隐藏列。 我在excel中发现了一种防止用户选择受保护单元格的方法,下面是相同的快照。 从“选择锁定的单元格”中删除刻度将阻止用户选择受保护的单元格,但我无法在代码中找到相同的方法。

  • 我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。

  • 问题内容: 尝试使用ApachePOI打开Excel时,我得到 我检查了。没有创建这样的文件夹。我正在使用Apache POI 3.6版。 有什么帮助吗?类似的代码在其他工作区中运行良好。在这里不知所措。 码: 问题答案: 您为什么要制作一个非常好的文件,将其包装在中,然后要求POI必须为您缓冲整个文件,以便可以进行随机访问?如果直接将文件直接传递给POI,生活会好很多,因此可以根据需要跳过它!