我正在寻找一种方法,使用命令行将一系列.csv
文件批量转换为.xlsx
。
我尝试了一系列不同的VBScripts,但他们似乎都在将.xlsx
转换为.csv
,而不是相反。
这是我能找到的最接近的一个,但同样是.xlsx
到.csv
:
if WScript.Arguments.Count < 2 Then
WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls Destination.csv"
Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
oBook.Close False
oExcel.Quit
WScript.Echo "Done"
有什么想法吗?
答案 0 :(得分:9)
免责声明:我在https://gitlab.com/DerLinkshaender/csv2xlsx
撰写了开源的CSV2XLSX您可能想尝试上面的外部工具。为什么呢?
优点:
答案 1 :(得分:8)
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!"
答案 2 :(得分:1)
对于Windows,我最近在SuperUser.com上回复了类似的问题。
https://superuser.com/a/1011154/326177
我认为 Total CSV Converter 是功能最多的最便宜的选项。它甚至不需要安装Excel,并且可以将CSV数据输出到JSON,Access,DBF,XML或SQL。
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
答案 3 :(得分:0)
您使用的是Windows还是Linux / Mac?
无论哪种方式,我都可以找到解决方案。
如果没有以下评论的程序,以下是您的问题的解决方案:
修改强> 所以这是基本的解决方案:
基本上,您从文件所在的目录应用过滤器(在本例中为xlsx过滤器)。
Nvm我刚刚看到你在Windows上 ./directory --headless --convert-to xlsx:&#34; Calc MS Excel 2007 XML&#34; FILE.CSV
在这种情况下&#34; Calc MS Excel 2007 XML&#34;是过滤器。
适用于单个文件,让我在一秒钟内添加批处理。
答案 4 :(得分:0)
这是我使用NPOI库创建的Windows机器的开源工具,它可以将简单的分隔文件转换为XLS / XLSX转换,而不需要在机器上安装Excel。如果您不想自己构建二进制文件,则二进制文件位于Bin / Debug中。所有必需的库都包含在可执行文件中,因此它可以独立运行。