クライアントに入力するテンプレートを提供し、スプレッドシートをアップロードしてcfspreadsheet
、データをデータベーステーブルにコピーするためにファイルを読み取ります。
とても簡単。テンプレートには 1 つの列しかありません。クライアントは、複数の列を含むシートをアップロードできません。これは以前は機能していました。
したがって、1 つの列ヘッダーは次のようING_CAS
になりますが、ファイルを読み込むと , ,がcfspreadsheet
得られます。したがって、空白のセルが読み取られるだけでなく、この属性によりデフォルトの名前が付けられます。COL_2
COL_3
ING_CAS
headerrow="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>