我正在使用 CFSPREADSHEET 将 XLS 文件读入查询。然后根据需要重新排序列。但是,我使用的查询查询保留字母列顺序。
XLS 文件的字段顺序正确,但转换为查询时,字段按字母顺序排列。
我使用这个漂亮的 UDF将结果输出到 CSV ,并且这些字段仍然按字母顺序排列,以证明 q-of-q 不符合我的要求。
为了纠正这个问题,我尝试使用 q-of-q 以正确的顺序重新格式化列。
<cfspreadsheet action="read" src="#local.tmpPath##local.tmpFile#" excludeheaderrow="true" headerrow="1" sheet="1" query="local.qTemp" />
<!--- Change column order around as necessary --->
<cfquery name="local.qTemp" dbtype="query">
SELECT
Name, Address, City
FROM
[local].qTemp
</cfquery>
<cfset local.newCSV = QueryToCSV(
query = local.qTemp,
fields = local.qTemp.columnlist,
createHeaderRow = true,
delimiter = '|'
) />
<cffile action="write" charset="windows-1252" file="#local.tmpPath#foo.csv" output="#replace(local.newCSV, """", "", "ALL")#" nameconflict="overwrite" />
我输出时的列顺序是:
Address,City,Name
而不是查询顺序:
Name,Address,City
我阅读了有关该主题的这篇文章,但它并没有具体解决我的问题(除非我读错了)。