Hướng dẫn batch script to convert excel to csv - tập lệnh hàng loạt để chuyển đổi excel sang csv

63

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm thế nào để bạn chuyển đổi nhiều tệp XLSX thành các tệp CSV bằng tập lệnh hàng loạt?

Hướng dẫn batch script to convert excel to csv - tập lệnh hàng loạt để chuyển đổi excel sang csv

Phoebe

2.7543 huy hiệu vàng22 Huy hiệu bạc27 Huy hiệu đồng3 gold badges22 silver badges27 bronze badges

Đã hỏi ngày 10 tháng 3 năm 2011 lúc 7:34Mar 10, 2011 at 7:34

6

Hãy thử In2CSV!

Usage:

in2csv file.xlsx > file.csv

Đã trả lời ngày 23 tháng 4 năm 2015 lúc 18:31Apr 23, 2015 at 18:31

Marbelmarbelmarbel

7.4615 Huy hiệu vàng48 Huy hiệu bạc67 Huy hiệu đồng5 gold badges48 silver badges67 bronze badges

1

Nhận tất cả các mục tệp và lọc chúng bằng hậu tố và sau đó sử dụng đối tượng PowerShell Excel VBA để lưu các tệp Excel vào các tệp 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() 
} 

Bạn có thể tìm thấy mẫu hoàn chỉnh ở đây cách chuyển đổi tệp excel xlsx thành tệp CSV theo đợt của PowerShell

Đã trả lời ngày 30 tháng 3 năm 2017 lúc 5:49Mar 30, 2017 at 5:49

EricericEric

8698 Huy hiệu bạc7 Huy hiệu đồng8 silver badges7 bronze badges

1

Cách thay thế để chuyển đổi thành CSV. Sử dụng libreoffice:

libreoffice --headless --convert-to csv *

Xin lưu ý rằng điều này sẽ chỉ chuyển đổi bảng tính đầu tiên của tệp Excel của bạn.

Hướng dẫn batch script to convert excel to csv - tập lệnh hàng loạt để chuyển đổi excel sang csv

Đã trả lời ngày 7 tháng 10 năm 2019 lúc 18:09Oct 7, 2019 at 18:09

Hướng dẫn batch script to convert excel to csv - tập lệnh hàng loạt để chuyển đổi excel sang csv

1

Để theo dõi câu trả lời của User183038, đây là tập lệnh shell thành Batch đổi tên tất cả các tệp XLSX thành CSV trong khi bảo tồn tên tệp. Công cụ XLSX2CSV cần được cài đặt trước khi chạy.

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

Đã trả lời ngày 5 tháng 12 năm 2014 lúc 12:02Dec 5, 2014 at 12:02

Jstajstajsta

2.96725 huy hiệu bạc33 huy hiệu đồng25 silver badges33 bronze badges

Bạn cần một công cụ bên ngoài, ví dụ: SoftInterface.com - Chuyển đổi XLSX thành CSV.

Sau khi cài đặt nó, bạn có thể sử dụng lệnh sau trong lô của mình:

"c:\Program Files\Softinterface, Inc\Convert XLS\ConvertXLS.EXE" /S"C:\MyExcelFile.xlsx" /F51 /N"Sheet1" /T"C:\MyExcelFile.CSV" /C6 /M1 /V

Đã trả lời ngày 14 tháng 3 năm 2011 lúc 6:39Mar 14, 2011 at 6:39

jingjingjing

1.8572 huy hiệu vàng19 Huy hiệu bạc35 Huy hiệu đồng2 gold badges19 silver badges35 bronze badges

2

Nhu cầu cài đặt Excel vì nó sử dụng đối tượng

$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() 
} 
0 COM.Ve
$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() 
} 
1
file:

@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();

Nó chấp nhận ba đối số - đường dẫn tuyệt đối đến tệp XLSX, tên trang tính và đường dẫn tuyệt đối đến tệp CSV đích:

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

Đã trả lời ngày 30 tháng 3 năm 2017 lúc 7:28Mar 30, 2017 at 7:28

Hướng dẫn batch script to convert excel to csv - tập lệnh hàng loạt để chuyển đổi excel sang csv

Npocmakanpocmakanpocmaka

53.9K18 Huy hiệu vàng141 Huy hiệu bạc179 Huy hiệu đồng18 gold badges141 silver badges179 bronze badges

1

Thêm vào câu trả lời của @Marbel (đó là một gợi ý tuyệt vời!), Đây là kịch bản làm việc cho tôi trên thiết bị đầu cuối của Mac OS X El Captain, để chuyển đổi hàng loạt (vì đó là những gì OP đã hỏi). Tôi nghĩ rằng sẽ là tầm thường khi thực hiện một vòng lặp

$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() 
} 
2 nhưng không phải vậy! (Phải thay đổi phần mở rộng bằng thao tác chuỗi và có vẻ như Bash của Mac cũng hơi khác một chút)

for x in $(ls *.xlsx); do x1=${x%".xlsx"}; in2csv $x > $x1.csv; echo "$x1.csv done."; done

Note:

  1. $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() 
    } 
    
    3 là thao tác chuỗi bash mà clip
    $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() 
    } 
    
    4 từ cuối chuỗi.
  2. IN2CSV tạo các tệp CSV riêng biệt (không ghi đè lên XLSX).
  3. Những điều trên sẽ không hoạt động nếu tên tệp có không gian trắng trong đó. Tốt để chuyển đổi không gian trắng thành dấu gạch dưới hoặc một cái gì đó, trước khi chạy tập lệnh.

jpaugh

6.2774 Huy hiệu vàng36 Huy hiệu bạc90 Huy hiệu Đồng4 gold badges36 silver badges90 bronze badges

Đã trả lời ngày 22 tháng 3 năm 2017 lúc 11:06Mar 22, 2017 at 11:06

AnupamanupamAnupam

14.3K18 Huy hiệu vàng63 Huy hiệu bạc92 Huy hiệu Đồng18 gold badges63 silver badges92 bronze badges

2

Đây là những gì đã làm việc cho tôi để chuyển đổi tất cả các tệp

$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() 
} 
5 thành
$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() 
} 
6 trong thư mục hiện tại từ PowerShell với Excel được cài đặt:

$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() 
} 

Đã trả lời ngày 5 tháng 7 lúc 21:11Jul 5 at 21:11

Hướng dẫn batch script to convert excel to csv - tập lệnh hàng loạt để chuyển đổi excel sang csv

JonjonJon

8,5966 Huy hiệu vàng54 Huy hiệu bạc72 Huy hiệu đồng6 gold badges54 silver badges72 bronze badges

Làm cách nào để chuyển đổi excel sang CSV?

Batch Chuyển đổi các tệp Excel của một thư mục thành các tệp CSV với VBA..
Nhấn phím F5, chọn thư mục chứa các tệp Excel bạn muốn chuyển đổi sang các tệp CSV trong hộp thoại Popping đầu tiên ..
Nhấp vào OK, sau đó trong hộp thoại Popping thứ hai, chọn thư mục để đặt các tệp CSV ..

Làm thế nào để bạn chuyển đổi Excel thành CSV bằng PowerShell?

Chuyển đổi XLSX sang CSV bằng PowerShell..
foreach ($ ws trong bảng tính $ wb.) {.
$ ws.Saveas ("$ mydir \" + $ file + ". Csv", 6).
$Excel.Quit().

Làm cách nào để lưu nhiều tờ Excel dưới dạng tệp CSV?

Lưu, xuất hoặc chuyển đổi nhiều/tất cả các tờ thành CSV hoặc Tệp văn bản với Kutools cho Excel..
Nhấp vào Kutools Plus> Sổ làm việc> Sách bài tập chia tay.Xem ảnh chụp màn hình:.
Trong hộp thoại Sách bài tập phân chia: 1).....
Trong hộp thoại Duyệt cho thư mục, chỉ định một thư mục để lưu các tệp đã xuất, sau đó nhấp vào nút OK ..

Làm thế nào chuyển đổi Excel sang CSV VBA?

Bước 1: Mở sổ làm việc Excel mới.Bước 2: Nhấn Alt+F11 - Điều này sẽ mở Trình chỉnh sửa VBA (cách khác, bạn có thể mở nó từ tab Nhà phát triển trong Ribbon Excel) Bước 3: Chèn mô -đun mã từ đó chèn menu của VBE.Bước 4: Sao chép mã trên và dán trong mô -đun mã đã chèn vào bước trên.