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

sigwle7e  于 2022-12-24  发布在  其他
关注(0)|答案(7)|浏览(288)

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

0x6upsns

0x6upsns1#

试试in2csv!
用法:

in2csv file.xlsx > file.csv
jdzmm42g

jdzmm42g2#

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

libreoffice --headless --convert-to csv *

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

bbuxkriu

bbuxkriu3#

获取所有文件项并按后缀过滤,然后使用PowerShell Excel VBA对象将Excel文件保存为csv文件。

$excelApp = New-Object -ComObject Excel.Application 
$excelApp.DisplayAlerts = $false 

Get-ChildItem -File -Filter '*.xlsx' | ForEach-Object { 
    $workbook = $excelApp.Workbooks.Open($_.FullName) 
    $csvFilePath = $_.FullName -replace "\.xlsx$", ".csv" 
    $workbook.SaveAs($csvFilePath, [Microsoft.Office.Interop.Excel.XlFileFormat]::xlCSV) 
    $workbook.Close() 
}

您可以在此处找到完整的示例How to convert Excel xlsx file to csv file in batch by PowerShell

gt0wga4j

gt0wga4j4#

为了跟进user183038给出的答案,下面是一个shell脚本,用于批量将所有xlsx文件重命名为csv,同时保留文件名。xlsx2csv工具需要在运行之前安装。

for i in *.xlsx;
 do
  filename=$(basename "$i" .xlsx);
  outext=".csv" 
  xlsx2csv $i $filename$outext
done
wko9yo5t

wko9yo5t5#

您需要一个外部工具,例如:SoftInterface.com - Convert XLSX to CSV.
安装后,您可以在批处理中使用以下命令:
第一个月

8fq7wneg

8fq7wneg6#

需要安装excel,因为它使用Excel.Applicationcom object。将其另存为***.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();

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

call toCsv.bat "%cd%\Book1.xlsx" Sheet1 "%cd%\csv.csv"
tjrkku2a

tjrkku2a7#

除了@marbel的回答(这是一个很好的建议!),下面是我在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

注:

  1. ${x%”.xlsx”}是bash字符串操作,它从字符串末尾剪切.xlsx
  2. in2csv创建单独的csv文件(不覆盖xlsx文件)。
    1.如果文件名中有空格,上面的方法将不起作用。在运行脚本之前,最好将空格转换为下划线或其他形式。

相关问题