クライアントに入力するテンプレートを提供し、スプレッドシートをアップロードしてcfspreadsheet、データをデータベーステーブルにコピーするためにファイルを読み取ります。
とても簡単。テンプレートには 1 つの列しかありません。クライアントは、複数の列を含むシートをアップロードできません。これは以前は機能していました。
したがって、1 つの列ヘッダーは次のようING_CASになりますが、ファイルを読み込むと , ,がcfspreadsheet得られます。したがって、空白のセルが読み取られるだけでなく、この属性によりデフォルトの名前が付けられます。COL_2COL_3ING_CASheaderrow="1"
私はここで途方に暮れています。テンプレートをダウンロードし続け、余分な空白の行と列を選択して削除しますが、クライアントがファイルを取得すると、ファイルを制御できなくなります。
cfspreadsheet空白のセルを無視する、私が見逃している奇妙な設定はありますか?
<cfspreadsheet action="read" src="#theFile#" query="SpreadSheetData" headerrow="1">
<cfdump var="#SpreadSheetData#" />
COL_(n) 列を削除するヘルパー関数を作成することになりました。
<cffunction name="CleanExcelQuery" access="public" returntype="query" output="false" hint="Strips out blank column headers picked up on read.">
    <cfargument name="SpreadSheetQuery" type="query" required="true" />
    <cfset var theColumnHeaders = SpreadSheetQuery.columnList>
    <cfset var theNewColumnHeaders = "">
    <cfloop list="#theColumnHeaders#" index="h">
        <cfif uCase(left(h,  4)) IS NOT "COL_">
            <cfset theNewColumnHeaders = ListAppend( theNewColumnHeaders,  h )>
        </cfif>
    </cfloop>
    <cfquery name="newSpreadSheetQuery" dbtype="query">
        Select #theNewColumnHeaders#
        From SpreadSheetQuery
    </cfquery>
    <cfreturn newSpreadSheetQuery />
</cffunction>