我正在尝试锁定从 Jasper iReport 创建的 Excel 工作表中的列/单元格,因为我们的客户不希望用户能够更新公式。我在这方面找不到太多东西。
我添加了我在配置参考(http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.export.xls.cell.locked)中找到的锁定属性,尽管它不会阻止在导出的工作表上编辑列中的单元格。
<jr:column width="100">
<jr:detailCell style="table" height="20" rowSpan="1">
<textField>
<reportElement style="table" x="0" y="0" width="100" height="20">
<property name="net.sf.jasperreports.export.xls.formula" value="INDIRECT(ADDRESS(ROW(),4))"/>
<property name="net.sf.jasperreports.export.xls.cell.locked" value="true"/>
</reportElement>
</textField>
</jr:detailCell>
</jr:column>
配置参考还说设置“仅在封闭表受到保护时才有效”。我使用密码属性向工作表添加了密码,但这会导致整个工作表受到保护。
<property name="net.sf.jasperreports.export.xls.password" value="password" />
在整个工作表受到保护的情况下,我尝试将需要更新的字段的锁定属性设置为 false。但是我仍然无法更新它们,因为整个工作表都受到保护。
关于如何保护某些单元格或列而不是其他的任何想法?