正确地将XLSX转换为CSV

jac*_*cob 6 csv file-conversion xlsx

这是一个非常类似于此处描述的问题.但是我需要横向进行,我的问题出现在日期.我在Mac上.

是我的.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

PS可能导致真实问题的小问题:

  • A1 2012-08-16成为16-aug-12
  • J1 01:00:00变成01:00以及08:00:00变成08:00和09:00变成08:00:00依此类推.

Dev*_*ler 8

最简单的解决方案是简单地"另存为..."并选择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
Run Code Online (Sandbox Code Playgroud)

将其调用为:

wscript script.vbs C:\...\file.xlsx C:\...\file.csv
Run Code Online (Sandbox Code Playgroud)

更新: 看一下使用Perl脚本执行转换的帖子.

更新2 显然,VBA代码在路径方​​面很挑剔.相对于文档目录解析不合格的路径.因此,为了获得可重现的结果,请使用输入和输出文件的完整路径.