2012-08-16 70 views
6

这是一个非常类似于here描述的问题。但是,我需要水平执行,并且我的问题发生在日期。我在Mac上。将XLSX正确转换为CSV

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以及8点00分○○秒变为:可能导致以假乱真小问题08:00和09:00变成08:00:00等。

回答

7

最简单的解决方案是简单地“另存为...”并选择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代码是关于路径finicky。不合格的路径相对于您的文档目录解析。因此,为了获得可重复的结果,请使用输入和输出文件的完整路径。

+0

我在Mac上。是的,我希望以自动化的方式做到这一点。 – jacob 2012-08-16 19:35:46

+0

我出于好奇而尝试了这种方法,并且找不到“file.xlsx”。检查文件名称的拼写,并验证文件位置是否正确。我从所有文件所在的目录中的命令提示符运行命令。 – cusman 2013-02-19 17:46:06

+0

尝试使用file.xlsx的完整路径。 – 2013-02-20 21:52:29