【发布时间】:2019-05-09 22:15:04
【问题描述】:
我需要一种编程方式来重复将下载的 CSV 转换为 XLS,基本上保持文件的相同名称并且每次都替换 XLS。我在 Mac 10.12 上工作,并且精通命令行,但没有找到无需下载第三方库的简单方法。我找到了一个答案,它给了我一个可以在 PowerShell 上使用的 VBscript,但我需要一些帮助。
我已经下载了 PowerShell,并且可以在终端中使用它。我有这个来自another StackOverflow question的脚本:
Dim file, WB
With CreateObject("Excel.Application")
On Error Resume Next
For Each file In WScript.Arguments
Set WB = .Workbooks.Open(file)
WB.SaveAs Replace(WB.FullName, ".csv", ".xlsx"), 51
WB.Close False
Next
.Quit
End With
WScript.Echo "Done!"
使用参数执行此脚本(在 PowerShell 中)的命令是什么?
我尝试了执行命令的变体,但总是得到CommandNotFoundException,可能是因为我做错了。我在这里的理想结果是Desktop/data.csv 可以反复变为Desktop/data.xls,无论是使用此脚本还是对于 Mac 用户来说非常容易。
谢谢!
*为具体/简化而编辑
【问题讨论】:
-
您知道 Excel 可以轻松打开 CSV 文件,不是吗?如果您仍想创建 Excel 文件,您可以尝试 Doug Finke ImportExcel 的出色模块。
-
CreateObject() 是 COM 自动化,这是一种仅限 Windows 的技术; Excel 的那种自动化在 Mac 上是行不通的。我怀疑 VBScript 也可以在 Mac 上运行。 (VBA 中的 Microsoft Office 脚本不是 VBScript)。使用 AppleScript 自动化 Excel 可能是可能的,但 Olaf 对 ImportExcel 的建议可能是一条不错的前进路线。
标签: excel powershell csv command-line vbscript