使用批处理将xlsx文件转换为csv

Ank*_*kur 44 csv excel batch-file xlsx

如何使用批处理脚本将多个xlsx文件转换为csv文件?

mar*_*bel 27

试试in2csv!

用法:

in2csv file.xlsx > file.csv
Run Code Online (Sandbox Code Playgroud)


Mic*_*icz 12

转换为 csv 的替代方法。使用libreoffice

libreoffice --headless --convert-to csv *
Run Code Online (Sandbox Code Playgroud)

请注意,这只会转换 Excel 文件的第一个工作表。

  • 在 Mac 上:`/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to csv *` (2认同)

小智 9

获取所有文件项并按后缀过滤它们,然后使用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() 
} 
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到完整示例如何通过PowerShell批量转换Excel xlsx文件到csv文件


jst*_*sta 8

要通过user183038跟进答案,这里有一个shell脚本,可以在保留文件名的同时将所有xlsx文件批量重命名为csv.需要在运行之前安装xlsx2csv工具.

for i in *.xlsx;
 do
  filename=$(basename "$i" .xlsx);
  outext=".csv" 
  xlsx2csv $i $filename$outext
done
Run Code Online (Sandbox Code Playgroud)


jin*_*ing 6

您需要一个外部工具,例如: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

  • 声明“命令行功能不足以将 xlsx 转换为 csv。” 应该删除(不真实),并且“您需要一些外部工具”应该替换为“您可以使用”等。例如,请参阅@marbel 的回答(但还有其他解决方案)。 (2认同)

npo*_*aka 5

需要安装 Excel,因为它使用Excel.Application 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();
Run Code Online (Sandbox Code Playgroud)

它接受三个参数 - xlsx 文件的绝对路径、工作表名称和目标 csv 文件的绝对路径:

call toCsv.bat "%cd%\Book1.xlsx" Sheet1 "%cd%\csv.csv"
Run Code Online (Sandbox Code Playgroud)