シートが保護されていない限り、つまりcfspreadsheetのpassword
属性を使用していない限り、セルをロックしても何も起こりません。しかし、そうすることにはいくつかのマイナスの副作用があります...
シートを保護すると、すべてのセルがロックされます。つまり、基本的に、フォーマットを適用して他のすべてを「ロック解除」する必要があります。理論的には、シート全体のロックを解除することができます。
<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" />