クライアントがユーザーが数式を更新できないようにするため、Jasper iReport から作成された Excel シートの列/セルをロックしようとしています。私はこれについて多くを見つけることができませんでした。
config リファレンス ( 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>
構成リファレンスには、「囲んでいるシートが保護されている場合にのみ効果がある」という設定も記載されています。password プロパティを使用してシートにパスワードを追加しましたが、これによりシート全体が保護されてしまいます。
<property name="net.sf.jasperreports.export.xls.password" value="password" />
シート全体を保護した状態で、更新可能にする必要があるフィールドに対して、locked プロパティを false に設定して追加してみました。しかし、シート全体が保護されていたため、まだ更新できませんでした。
一部のセルまたは列を保護し、他のセルまたは列を保護しない方法についてのアイデアはありますか?