var*_*ana 4 coldfusion cfspreadsheet
我正在使用cfspreadsheet创建一个电子表格对象.想使一些单个单元格成为受保护的(只读).如果有人以前试过,请告诉我.
我确实尝试将单元格格式设置为锁定,但似乎无法正常工作.以下是示例代码:
<cfset a = spreadsheetnew()>
<cfset format1 = structNew()>
<cfset format1.locked=true>
<cfset SpreadsheetFormatCell(a,format1,1,1)>
<cfspreadsheet action="write" filename="#expandpath('.')#/test.xls" name="a" overwrite="true">
Run Code Online (Sandbox Code Playgroud)
谢谢.
锁定单元格除非工作表受到保护,即使用cfspreadsheet的password 属性,否则不会执行任何操作.但这样做有一些负面的副作用......
保护纸张锁定所有单元格.这意味着你必须通过应用格式"解锁"其他所有内容.理论上你可以解锁整个表格:
<cfset SpreadsheetFormatCellRange (sheet, {locked=false}, 1, 1, maxRow, maxCol)>
Run Code Online (Sandbox Code Playgroud)
然而,这具有填充表单中的每个单元格的令人讨厌的效果.因此,如果您将文件读入查询,则查询将包含~65,536行和256列.即使您只显式填充了一些单元格.
锁定功能更适合于您希望锁定所有内容的情况,除了几个单元格(不是相反的单元格).除非你正在做的事情,否则考虑到所有的负面影响,我可能不会打扰它.
副作用的例子
<cfset testFile = "c:/test.xls">
<cfset sheet = spreadsheetNew()>
<!--- only unlocking 100 rows to demonstrate --->
<cfset SpreadsheetFormatCellRange (sheet, {locked=false}, 1, 1, 100, 10)>
<!--- populate two cells --->
<cfset SpreadsheetSetCellValue(sheet,"LOCKED",1,1)>
<cfset SpreadsheetSetCellValue(sheet,"UNLOCKED",2,1)>
<!--- make one cell locked --->
<cfset SpreadsheetFormatCell(sheet, {locked=true}, 1, 1)>
<cfspreadsheet action="write"
name="sheet"
fileName="#testFile#"
password=""
overwrite="true" >
<!--- now see it is filled with empty cells --->
<cfspreadsheet action="read"
query="sheetData"
src="#testFile#" >
<cfdump var="#sheetData#" label="Lots of empty cells" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |