배치를 사용하여 xlsx 파일을 csv로 변환합니다.
배치 스크립트를 사용하여 여러 xlsx 파일을 csv 파일로 변환하려면 어떻게 해야 합니까?
2csv를 입력하세요!
용도는 다음과 같습니다.
in2csv file.xlsx > file.csv
CSV로 변환하는 다른 방법입니다.사용하다libreoffice:
libreoffice --headless --convert-to csv *
이렇게 하면 Excel 파일의 첫 번째 워크시트만 변환됩니다.
모든 파일 항목을 가져와 접미사로 필터링한 다음 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()
}
PowerShell에서 Excel xlsx 파일을 일괄적으로 CSV 파일로 변환하는 방법은 여기를 참조하십시오.
사용자 183038의 답변에 대한 후속 조치를 위해 파일 이름을 유지하면서 모든 xlsx 파일의 이름을 csv로 일괄 변경하는 셸 스크립트가 있습니다.실행하기 전에 xlsx2csv 도구를 설치해야 합니다.
for i in *.xlsx;
do
filename=$(basename "$i" .xlsx);
outext=".csv"
xlsx2csv $i $filename$outext
done
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이 필요합니다.Excel.Application com 개체입니다.이 파일을 파일로 저장합니다.
@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"
@marbel의 답변(좋은 제안입니다!)에 덧붙여, Mac OS X El Captain's Terminal에서 일괄 변환을 위해 작동한 스크립트가 있습니다(OP에서 요청했기 때문입니다.저는 이런 걸 하는 게 좀 하찮을 것 같아서요.for(문자열 조작을 통해 확장자를 변경해야 했고 Mac의 bash도 조금 다른 것 같습니다.)
for x in $(ls *.xlsx); do x1=${x%".xlsx"}; in2csv $x > $x1.csv; echo "$x1.csv done."; done
참고:
${x%”.xlsx”}클립하는 bash 문자열 조작입니다..xlsx줄의 끝부분부터요.- in2csv는 별도의 csv 파일을 생성합니다(xlsx는 덮어쓰지 않음).
- 파일 이름에 공백이 있으면 위의 항목이 작동하지 않습니다.스크립트를 실행하기 전에 공백을 밑줄 등으로 변환하는 것이 좋습니다.
gocsv는 Mac, Linux 및 Windows에서 작동하며 종속성이 없습니다(Microsoft Office, Libre Office 또는 Python 없음).다음과 같이 xlsx 명령을 실행합니다.
gocsv xlsx file.xlsx
이 PowerShell 솔루션은 제게 효과가 있었습니다.다른 옵션(예: csvkit)은 인코딩 문제로 인해 중단되었지만 다음과 같이 작동했습니다.
- 관리자로 PowerShell을 실행합니다.
Install-Module ImportExcel- 려려를 실행합니다.
Import-Module ImportExcel이겁니다.- "이 시스템에서 스크립트 실행이 사용되지 않도록 설정되었습니다."와 같은 오류가 표시되면 다음과 같은 작업을 실행해야 합니다.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- "이 시스템에서 스크립트 실행이 사용되지 않도록 설정되었습니다."와 같은 오류가 표시되면 다음과 같은 작업을 실행해야 합니다.
cd.xlsx 파일이 들어 있는 디렉토리로 합니다.- 디렉터리의 모든 xlsx 파일을 CSV로 변환하려면 이 명령을 실행합니다.
Get-ChildItem -Filter *.xlsx | ForEach-Object { Import-Excel $_.FullName | Export-Csv ($_.FullName -replace '\.xlsx$','.csv') -NoTypeInformation }
완료되면 실행 권한을 다시 넣을 수 있습니다.로서는 달리기를 의미했습니다Set-ExecutionPolicy -ExecutionPolicy Restricted요.
언급URL : https://stackoverflow.com/questions/5256733/convert-xlsx-file-to-csv-using-batch 입니다.
'programing' 카테고리의 다른 글
| Eclipse: 파일 이름을 빠르게 검색합니다. (0) | 2023.04.25 |
|---|---|
| 도메인이 여러 개인 Access-Control-allow-origin입니다. (0) | 2023.04.25 |
| angular2 제출 버튼을 누르지 않고 enter를 눌러 양식을 제출합니다. (0) | 2023.04.25 |
| 한 디렉터리에서 기존 디렉터리로 파일을 복사합니다. (0) | 2023.04.25 |
| 스위치 케이스와 폴스루요? (0) | 2023.04.25 |