如何从cfquery创build制表符分隔的文本文件?

我已经使用cfspreadsheet创buildquery 。 现在我想知道是否有可能将查询转换为制表符分隔的文本文件。 这是我的代码来获取查询:

 <cfspreadsheet action="read" src="C:\myFiles\Records.xlsx" query="myQuery" headerrow="1"> 

以下是我在cfquery中用excel表示的logging列表:

  FIRST_NAME LAST_NAME DOB GENDER 1 FIRST_NAME LAST_NAME DOB GENDER 2 Mike Johns 01/12/98 M 3 Helen Johns 2/2/01 F 

如果可能的话,我希望我的文本文件看起来像这样:

 FIRST_NAME LAST_NAME DOB GENDER Mike Johns 01/12/98 M Helen Johns 2/2/01 F 

在值和\ n之间使用制表符分隔符来创build换行符。 我已经尝试.csv但我不能像上面显示的那样组织文件。 此外,如果有任何其他方式将.xlsx文件转换为.txt请让我知道。 我正在寻找xp_cmdshell命令,但没有什么在我的情况下会有所帮助。

这里是我用来获取.csv文件的代码:

 <cfspreadsheet action="read" format="csv" src="C:\myFiles\Records.xlsx" name="myCsv"> 

然后我用FileWrite()来获取.txt文件:

 <cfscript> FileWrite("C:\myFiles\Records.txt", "#myCsv#"); </cfscript> 

上面的代码给了我制表符分隔的文本文件,但是出现了一个问题,如果字段中的值是空的,这些列消失了。 例如,如果我在我的GENDER列中没有价值,则该列未创build。

 Mike Johns 01/12/98 

从字面上看,您可能会将查询结果集转换为制表符分隔的CSV文件。 也就是说,没有cfspreadsheet的参与。 通过稍微修改我给你的类似问题的答案,你会得到一个答案:

 <cfspreadsheet action = "read" src="C:\myFiles\Records.xlsx" query="excelquery" sheet="1"> <!--- Create CSV file in current directory---> <cffile action="write" file="#expandpath('result.csv')#" output=""> <cfset columns = arraynew(1)> <cfset columns = listToArray(excelquery.ColumnList)> <cfoutput query="excelquery"> <cfset rowList = ""> <cfloop from="1" to="#arraylen(columns)#" index="n"> <cfset colName = columns[n]> <cfset cellData = evaluate("#colName#[currentrow]")> <!--- Tab-separated row data ---> <cfset rowList = listAppend(rowList,cellData,chr(9))> </cfloop> <!--- Place carriage-return at end of row ---> <cfset rowList = rowList & '<br>'> <!--- Append row to CSV file ---> <cffile action="append" file="#expandpath('result.csv')#" output="#rowList#" > </cfoutput>