從Excel轉換爲查詢。然後,在每行的單元格數據中,將「,」替換爲「\」。像這樣的東西
<cfspreadsheet
action = "read"
src="filePath\myFile.xlsx"
query="excelquery"
sheet="1">
<!--- Create CSV file in current directory--->
<cffile action="write" file="#expandpath('result.csv')#" output="">
<cfset columns = arraynew(1)>
<!--- Store the list of column names as an array --->
<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]")>
<!--- Replace , by \ in each cell --->
<cfset cellData = replace(cellData, ",", "\", "all")>
<!--- Comma-separated row data --->
<cfset rowList = listAppend(rowList,cellData)>
</cfloop>
<!--- Place a carriage-return at the end of the row --->
<cfset rowList = rowList & '<br>'>
<!--- Append row to CSV file --->
<cffile action="append" file="#expandpath('result.csv')#" output="#rowList#" >
</cfoutput>
對於這種情況,cfhttp可能比cfspreadsheet更好的標籤選擇。詳細信息在文檔中。然而,話雖如此,您的csv文件必須將數據用雙引號才能確定哪些逗號是分隔符,哪些是數據的一部分。 –
@DanBracuk我想在創建csv文件之前替換逗號。我的文件在.xlsx中,我想用\這種方式替換,我的csv將跳過所有\。你也可以提供任何可以用cfhttp標籤完成的例子嗎? –
我誤解了這個問題。我以爲你想讀取一個CSV文件。話雖如此,如果意圖是創建一個csv文件,我建議雙引號的所有數據單元格,以便數據中的逗號將更少。 –