วิธีแปลงไฟล์ Excel ที่มีหลายแผ่นเป็นชุดไฟล์ CSV?


23

ฉันมีไฟล์ Excel ที่มี 20 แผ่นอยู่ มีวิธีแปลงไฟล์เป็น 20 ไฟล์ CSV อย่างรวดเร็ว - แต่ละแผ่นหรือไม่

แน่นอนว่าฉันสามารถทำได้ด้วยตนเอง แต่ฉันจะต้องประมวลผลไฟล์เหล่านี้เป็นจำนวนมากดังนั้นจึงเป็นการดีถ้ามีอรรถประโยชน์บรรทัดคำสั่ง (หรือแม้แต่สวิตช์บรรทัดคำสั่ง Excel)

คำตอบ:


17

วิธีการโดย vembutech เป็นทางออกที่แน่นอนมากขึ้น นี่คือมาโคร VBA ที่มีน้ำหนักเบาที่จะส่งออกแผ่นงานทั้งหมดจากสมุดงานเดียว

ไปในโฟลเดอร์สมุดงานที่ใช้งานอยู่ชื่อทั้งหมดคือ workbookname_sheetname.csv

Sub exportcsv()
Dim ws As Worksheet
Dim path As String

path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
    ws.Activate
    ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
Next
End Sub

แก้ไข:

สำหรับความเห็น แมโครดั้งเดิมใช้การบันทึกเป็นฟังก์ชัน (ซึ่งคล้ายกับการปิดต้นฉบับ) หากคุณต้องการทำสิ่งนี้ในขณะที่เปิดต้นฉบับค้างไว้คุณต้องคัดลอกไปยังสมุดงานใหม่ให้บันทึกปิดสมุดงานใหม่

Sub exportcsv()
Dim ws As Worksheet
Dim path As String

path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
For Each ws In Worksheets
    ws.Copy
    ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close False
Next
End Sub

ฉันเพิ่งRun-time error '1004': Application-defined or object-defined errorไปถึง Excel สำหรับ Mac
ไบรอัน

8

แทนที่จะเป็นชุดสคริปต์คุณสามารถใช้XLS เพื่อแปลง CSVซึ่งจะช่วยให้คุณมีส่วนติดต่อผู้ใช้ที่ดีขึ้น

ลิงก์โดยตรง: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip

แตกไฟล์. HTA

ดับเบิลคลิกที่ไฟล์. HTA

ป้อนคำอธิบายรูปภาพที่นี่

ค้นหาโฟลเดอร์ที่คุณมีไฟล์ xls ของคุณ

เลือก schema การตั้งชื่อ csv และคลิกเริ่มการแปลงซึ่งจะแปลงไฟล์ xls ทั้งหมดด้วยในโฟลเดอร์เป็นไฟล์ csv

หากโฟลเดอร์ของคุณมีไฟล์ 3 xls พร้อม 3 แผ่นมันจะสร้างไฟล์ 9 csv สำหรับแต่ละแผ่นงานและคุณสามารถระบุไฟล์ csv ด้วย schs การตั้งชื่อ csv

หวังว่านี่จะช่วยได้!


6

นี่คือสคริปต์หลามgetheets.py ( มิเรอร์ ) คุณควรติดตั้งpandasและxlrdก่อนใช้งาน

เรียกใช้สิ่งนี้:

pip3 install pandas xlrd  # or `pip install pandas xlrd`

มันทำงานอย่างไร

$ python3 getsheets.py -h
Usage: getsheets.py [OPTIONS] INPUTFILE

Convert a Excel file with multiple sheets to several file with one sheet.

Examples:

    getsheets filename

    getsheets filename -f csv

Options:
-f, --format [xlsx|csv]  Default xlsx.
-h, --help               Show this message and exit.

แปลงเป็น xlsx หลายรายการ:

$ python3 getsheets.py goods_temp.xlsx
Sheet.xlsx Done!
Sheet1.xlsx Done!

All Done!

แปลงเป็น csv หลายรายการ:

$ python3 getsheets.py goods_temp.xlsx -f csv
Sheet.csv Done!
Sheet1.csv Done!

All Done!

1
นอกจากนี้: pip3 install openpyxl click ... จากนั้นฉันจะได้รับImportError: cannot import name 'get_column_letter'สาย 513 จาก pandas excel.py; ฉันเดาว่าการติดตั้งนุ่นของฉันจะใช้งานไม่ได้
Jameson Quinn

3

แมโครจากExtendOfficeเพื่อบันทึกแท็บในโฟลเดอร์เอกสารของคุณ:

Sub ExportSheetsToCSV()
    Dim xWs As Worksheet
    Dim xcsvFile As String
    For Each xWs In Application.ActiveWorkbook.Worksheets
        xWs.Copy
        xcsvFile = CurDir & "\" & xWs.Name & ".csv"
        Application.ActiveWorkbook.SaveAs Filename: = xcsvFile, _
        FileFormat: = xlCSV, CreateBackup: = False
        Application.ActiveWorkbook.Saved = True
        Application.ActiveWorkbook.Close
    Next
End Sub
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.