正确将 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的主要内容,如果未能解决你的问题,请参考以下文章

怎么讲csv格式转换为xlsx

如何在前端(TS、React)上将 CSV 转换并下载到 XLSX

在 csv/xlsx 文件中写入图像的正确方法是啥?

Python将csv转换为xlsx

如何使用 shell 脚本将 xlsx 文件转换为 csv 文件?

读取 xls,将所有日期转换为正确格式,-> 写入 csv