コマンドラインを使用して、一連の.csv
ファイルを.xlsx
にバッチ変換する方法を探しています。
私は見つけたさまざまなVBScriptをいくつか試しましたが、それらはすべて.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"
何か案は?
唯一の前提条件は、「。csv」がファイル名で小文字でなければならないことです。
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!"
免責事項:私は https://gitlab.com/DerLinkshaender/csv2xlsx でオープンソースとして利用可能なCSV2XLSXを作成しました
上記のような外部ツールを試してみてください。どうして?
利点:
Windowsについては、最近、SuperUser.comで同様の質問に回答しました。
https://superuser.com/a/1011154/326177
合計CSVコンバーターは、ほとんどの機能を備えた最も安価なオプションだと思います。 Excelをインストールする必要はなく、CSVデータをJSON、Access、DBF、XMLまたはSQLに出力できます。
http://www.coolutils.com/TotalCSVConverter
CSVConverter.exe <source> <destination> <options>
WindowsまたはLinux/Macを使用していますか?
どちらにせよあなたのための解決策があるかもしれません。
以下は、プログラムにコメントを付けずに問題を解決する方法です。
[〜#〜] edit [〜#〜]これが基本的な解決策です:
基本的に、ファイルが配置されているディレクトリからフィルター(この場合はxlsxフィルター)を適用します。
Nvmこれは、Windowsで見たところです./directory --headless --convert-to xlsx: "Calc MS Excel 2007 XML" file.csv
この場合、「Calc MS Excel 2007 XML」がフィルターです。
これは単一のファイルで機能します。バッチを追加します。
これは、NPOIライブラリを使用して作成したWindowsマシン用のオープンソースツールで、Excelをマシンにインストールする必要なく、XLD/XLSX変換でファイルをシンプルに区切ります。バイナリを自分で作成したくない場合は、Bin/Debugにあります。必要なライブラリはすべて実行可能ファイルに含まれているため、スタンドアロンで動作できます。