Excel 如何在ColdFusion中替换.xlsx文件中的逗号?
我有一个excel文件,在某些字段中可以包含逗号。如果我想使用Excel 如何在ColdFusion中替换.xlsx文件中的逗号?,excel,csv,coldfusion,Excel,Csv,Coldfusion,我有一个excel文件,在某些字段中可以包含逗号。如果我想使用cfspreadsheet将文件转换为csv,这可能会导致问题。我想知道是否有办法用\替换或转换所有逗号。替换所有逗号后,我将能够使用cfspreadsheet创建csv。以下是我如何读取文件的代码: <cfspreadsheet action = "read" format="csv" src="filePath\myFile.xlsx" name="csvvar"> 如果有人能帮我解决这个问题,请告诉我。谢谢。将
cfspreadsheet
将文件转换为csv
,这可能会导致问题。我想知道是否有办法用\
替换或转换所有逗号。替换所有逗号后,我将能够使用cfspreadsheet
创建csv
。以下是我如何读取文件的代码:
<cfspreadsheet action = "read" format="csv" src="filePath\myFile.xlsx" name="csvvar">
如果有人能帮我解决这个问题,请告诉我。谢谢。将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文件,我建议对所有数据单元格进行双引号,这样数据中的逗号就不会那么重要了。@DanBracuk所以建议在每个字段周围加引号,然后运行导出到csv?如果任何字段都有逗号,数据是否仍然可能无效或不同?谢谢你的帮助。我真正建议你做我刚才做的事。使用excel创建一个csv文件,其中一些单元格包含逗号。然后用记事本打开文件,查看内容。