複数のxlsxファイルをバッチスクリプトでcsvファイルに変換するにはどうすればよいですか?
User183038による回答をフォローアップするために、ファイル名を保持しながらすべてのxlsxファイルの名前をcsvに一括して変更するシェルスクリプトを次に示します。 xlsx2csvツールは、実行する前にインストールする必要があります。
for i in *.xlsx;
do
filename=$(basename "$i" .xlsx);
outext=".csv"
xlsx2csv $i $filename$outext
done
すべてのファイルアイテムを取得し、サフィックスでフィルターし、PowerShell Excel VBAオブジェクトを使用してExcelファイルをcsvファイルに保存します。
$excelApp = New-Object -ComObject Excel.Application
$excelApp.DisplayAlerts = $false
$ExcelFiles | ForEach-Object {
$workbook = $excelApp.Workbooks.Open($_.FullName)
$csvFilePath = $_.FullName -replace "\.xlsx$", ".csv"
$workbook.SaveAs($csvFilePath, [Microsoft.Office.Interop.Excel.XlFileFormat]::xlCSV)
$workbook.Close()
}
ここで完全なサンプルを見つけることができます PowerShellでバッチでExcel xlsxファイルをcsvファイルに変換する方法
外部ツールが必要です。例: SoftInterface.com-XLSXをCSVに変換 。
インストール後、バッチで次のコマンドを使用できます。
"c:\Program Files\Softinterface, Inc\Convert XLS\ConvertXLS.EXE" /S"C:\MyExcelFile.xlsx" /F51 /N"Sheet1" /T"C:\MyExcelFile.CSV" /C6 /M1 /V
Excel.Application
を使用するため、Excelをインストールする必要があります comオブジェクト 。.bat
ファイル:
@if (@X)==(@Y) @end /* JScript comment
@echo off
cscript //E:JScript //nologo "%~f0" %*
exit /b %errorlevel%
@if (@X)==(@Y) @end JScript comment */
var ARGS = WScript.Arguments;
var xlCSV = 6;
var objExcel = WScript.CreateObject("Excel.Application");
var objWorkbook = objExcel.Workbooks.Open(ARGS.Item(0));
objExcel.DisplayAlerts = false;
objExcel.Visible = false;
var objWorksheet = objWorkbook.Worksheets(ARGS.Item(1))
objWorksheet.SaveAs( ARGS.Item(2), xlCSV);
objExcel.Quit();
3つの引数-xlsxファイルへの絶対パス、シート名、およびターゲットcsvファイルへの絶対パスを受け入れます。
call toCsv.bat "%cd%\Book1.xlsx" Sheet1 "%cd%\csv.csv"
@ marbel's answer (これは素晴らしい提案です!)に追加して、Mac OS X El Captain's Terminalでbatch変換(OPが要求したものだから)。 for
ループを実行するのは簡単だと思いましたが、そうではありませんでした! (文字列操作により拡張子を変更する必要があり、Macのbashも少し異なるようです)
for x in $(ls *.xlsx); do x1=${x%".xlsx"}; in2csv $x > $x1.csv; echo "$x1.csv done."; done
注意:
${x%”.xlsx”}
は、クリップする.xlsx
は文字列の末尾から。@ chris-ruddの功績
これは、ウィンドウからドラッグアンドドロップされる複数のファイルを処理するバージョンです。上記の作品に基づく
Christian Lemer
plang
ScottF
https://stackoverflow.com/a/3680496
これはVBSを使用し、Excelのインストールが必要です