锁定单元格没有任何作用除非纸张受到保护即使用 cfspreadsheet 的password
属性。但这样做会带来一些负面影响......
保护片锁all细胞。这意味着您本质上必须通过应用格式来“解锁”其他所有内容。理论上你可以解锁整个工作表:
<cfset SpreadsheetFormatCellRange (sheet, {locked=false}, 1, 1, maxRow, maxCol)>
然而,这会产生令人讨厌的影响每一个细胞在表中。因此,如果您将该文件读入查询,该查询将包含约 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" />