正确将 XLSX 转换为 CSV
Posted
技术标签:
【中文标题】正确将 XLSX 转换为 CSV【英文标题】:Convert XLSX to CSV correctly 【发布时间】:2012-08-12 23:20:58 【问题描述】:这是一个与here 描述的问题非常相似的问题。但是我需要横向进行,而我的问题出现在 date 上。我在 Mac 上。
This 是我的 .xlsx 文档的图片。我有很多条目,例如前三行中的条目,我想将它们转换为 CSV 作为最后三行。但我的问题是这样的:
2012-08-16(A1 中)变为 41137(A4 中) 我的会话从 08:00 到 09:00 是 01:00 小时(见 H1 和 I1 和 J1)变得一团糟—— ,0,333333333333333,0,375, 我从 09:00 到 10:00 的会话有 与上述问题相同,只是混乱的数字是 不同。我的最终目标是将我的 .xlsx 考勤表导出到 toggl
附:可能导致真正问题的小问题:
A1 2012-08-16 变为 16-aug-12 J1 01:00:00 变为 01:00,08:00:00 变为 08:00,09:00 变为 08:00:00,以此类推。【问题讨论】:
【参考方案1】:最简单的解决方案是简单地“另存为...”并选择 CSV 作为文件类型。
我猜您正在尝试以某种自动化方式执行此操作。如果以下假设成立:
您使用的是 Windows 平台 Excel 已安装将“XLSX”转换为“CSV”的最简单方法是使用一些 VB 脚本:
Set objArgs = WScript.Arguments
InputName = objArgs(0)
OutputName = objArgs(1)
Set objExcel = CreateObject("Excel.application")
objExcel.application.visible=false
objExcel.application.displayalerts=false
set objExcelBook = objExcel.Workbooks.Open(InputName)
objExcelBook.SaveAs OutputName, 23
objExcel.Application.Quit
objExcel.Quit
调用它:
wscript script.vbs C:\...\file.xlsx C:\...\file.csv
更新: 看看这个posting,它使用 Perl 脚本执行转换。
更新 2 显然 VBA 代码在路径方面很挑剔。不合格的路径相对于您的文档目录进行解析。因此,为了获得可重现的结果,请使用输入和输出文件的完整路径。
【讨论】:
我在 Mac 上。是的,我确实想以自动化方式进行。 我出于好奇尝试了这个,得到了'file.xlsx' not found. Check the spelling of the file name, and verify that the file location is correct.
。我从所有文件所在的目录中的命令提示符运行命令。
尝试使用 file.xlsx 的完整路径。以上是关于正确将 XLSX 转换为 CSV的主要内容,如果未能解决你的问题,请参考以下文章