1

Excel シートをデータベースにアップロードするスクリプトを作成しようとしていますが、小さな問題で立ち往生しています。別の Excel シートをアップロードするために変更する必要がないように、スクリプトは動的である必要があります。シートは以前と同じ規則に従う必要があります。

したがって、次のようにします。

<cfloop from="2" to="#sheet.rowcount#" index="row">

行の最後までループしますよね?

プロットのひねり: 空白のセルを「N/A」に変換する必要があります

簡単です:

<cfif SpreadsheetGetCellValue(sheet,row,col) EQ "">
    <cfset SpreadsheetSetCellValue(sheet,"N/A",row,col) />
</cfif>

問題:これにより、ダミー出力に数十行が表示されます(最後に、行に何も含まれなくなった後)

N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A

非常に繰り返されます。シートの長さは 56 行ですが、これは 100 行を超える必要があります。空白セルを「N/A」に変更することが原因ではないかと心配していますが、修正方法がわかりません。ここに完全なファイルがあります。残念ながら、Excel シートを表示することはできません。ただし、56 行 17 列です。

<cfspreadsheet action="read" src="derp.xlsx" name="sheet"> <!--- edit src --->
<!--- 17 columns wide 56 rows --->
<cfoutput>
    <cfloop from="2" to="#sheet.rowcount#" index="row">
        <cfloop from="1" to="17" index="col"> <!--- multi row selection (edit based on excel sheet) --->
        <cfif SpreadsheetGetCellValue(sheet,row,col) EQ "">
            <cfset SpreadsheetSetCellValue(sheet,"N/A",row,col) />
        </cfif>
        <cfoutput>#SpreadSheetGetCellValue(sheet,row,col)#</cfoutput><br />
        </cfloop>
        <br />
    </cfloop>
</cfoutput>

スクリプトを超えずに空白セルを「N/A」に変換するにはどうすればよいrowcountですか?

4

0 に答える 0