首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Jasper iReport中锁定/保护单元格或列

在Jasper iReport中锁定/保护单元格或列
EN

Stack Overflow用户
提问于 2014-11-18 16:31:21
回答 1查看 2.1K关注 0票数 1

我正试图锁定从Jasper iReport创建的excel表中的列/单元格,因为我们的客户端不希望用户能够更新公式。我在这件事上找不到多少。

我添加了在配置引用(http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.export.xls.cell.locked)中找到的锁定属性,尽管它并不阻止在导出的工作表上编辑列中的单元格。

代码语言:javascript
复制
<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属性向工作表添加了一个密码,但这会导致整个工作表受到保护。

代码语言:javascript
复制
<property name="net.sf.jasperreports.export.xls.password" value="password" />

在保护了整个工作表之后,我尝试为需要更新的字段将锁定的属性设置为false。但我还是不能更新因为整个床单都被保护了。

关于如何保护一些单元格或列,而不是其他单元格或列,有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-16 04:12:06

我昨天在jaspersoft工作室也面临着同样的问题。也许我太迟了,而你已经自己解决了这个问题。在这种情况下,仅仅是为了帮助像我们这样的人,这就是方法。

看来,一旦我们在工作表级别设置了密码,所有单元格都默认被锁定(再考虑一下,这似乎是显而易见的)。所以,如果我们想解锁一个细胞,我们必须明确地提到。

代码语言:javascript
复制
<property name="net.sf.jasperreports.export.xls.cell.locked" value="false"/>

因此,下面的代码将生成一个excel表,其中“静态文本”单元将被锁定,“静态Text22”单元将被解锁。希望这个例子能帮助到其他人,他们不会像我一样一转眼。

代码语言:javascript
复制
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="3bff4add-3bc7-49b8-acd4-0ec822191576">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<property name="net.sf.jasperreports.export.xls.password" value="test_password"/>
<queryString>
<![CDATA[]]>
</queryString>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="79" splitType="Stretch">
<staticText>
<reportElement x="123" y="2" width="100" height="30" uuid="c9f7abf8-2ed4-44c3-abf5-84fda5d190f4"/>
<text><![CDATA[Static Text]]></text>
</staticText>
<staticText>
<reportElement x="223" y="2" width="100" height="30" uuid="d95b84d7-5d1b-4919-b4f0-82a30c9effd6">
<property name="net.sf.jasperreports.export.xls.cell.locked" value="false"/>
</reportElement>
<text><![CDATA[Static Text22]]></text>
</staticText>
</band>
</title>
</jasperReport>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26999225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档