Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何在ColdFusion中替换.xlsx文件中的逗号?_Excel_Csv_Coldfusion - Fatal编程技术网

Excel 如何在ColdFusion中替换.xlsx文件中的逗号?

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"> 如果有人能帮我解决这个问题,请告诉我。谢谢。将

我有一个excel文件,在某些字段中可以包含逗号。如果我想使用
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文件,其中一些单元格包含逗号。然后用记事本打开文件,查看内容。