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>
この状況では、cfhreadpはcfspreadsheetよりも優れたタグの選択肢です。詳細はドキュメントに記載されています。ただし、あなたのcsvファイルはデリミタとデータの一部であるカンマを判別するためにデータを二重引用符で囲む必要があります。 –
@DanBracuk私はcsvファイルを作成する前にカンマを置き換えたいです。私のファイルは.xlsxにあり、私は\ cそのように置き換えて、私のCSVはすべて\をスキップします。また、cfhttpタグでどのように行うことができるかの例を提供できますか? –
私はその質問を誤解しました。私はあなたがcsvファイルを読み込もうとしていると思っていました。だが、CSVファイルを作成するのであれば、すべてのデータセルを二重引用符で囲むことをお勧めします。そうすれば、データのカンマが問題になることはありません。 –