首页 > 解决方案 > Cold Fusion 2018:如何将 .xlsx 文件另存为 .csv

问题描述

Win2019 上的 CF2018 尝试将用户上传的 .xlsx 文件保存为 .csv 文件以处理到 Oracle 数据库中。运行此代码,完成时没有错误,但结果不清晰:

<cfspreadsheet action = "read"
                format="csv"
                src="c:\bin\Nov_sales.xlsx"
                name="foo"
                > 

<cfspreadsheet action="write" 
                filename='c:\bin\Nov_sales.csv' 
                format="csv" 
                name="foo"  
                overwrite=true>

.csv 文件中的结果如下所示:

504b 0304 1400 0808 0800 d260 8f51 0000
0000 0000 0000 0000 0000 0b00 0000 5f72
656c 732f 2e72 656c 73ad 92c1 4a03 3110
865f 25cc bd9b 6d05 1169 da8b 08bd 89d4
.....

我错过了什么???

标签: coldfusioncfspreadsheet

解决方案


“cfspreadsheet 标签始终将电子表格数据写入 XLS 文件。要将 HTML 变量或 CSV 变量写入 HTML 或 CSV 文件,请使用 cffile 标签。”

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-rs/cfspreadsheet.html

或者换句话说,当使用 时cfspreadsheet action="write",该format属性不指定输出格式,而是指定输入格式 - 因为它可以是 CF 电子表格对象、查询、CSV 字符串或 HTML 字符串中的任何一种。

您在.csv文件中看到原始字节,因为无论.csv文件扩展名如何,它实际上都是一个 Excel 文件。


推荐阅读