CSV फ़ाइलों के एक सेट के साथ एक्सेल फाइल को कई शीटों में कैसे बदलें?


23

मेरे पास उस पर 20 शीटों के साथ एक एक्सेल फाइल है। क्या फ़ाइल को 20 CSV फ़ाइलों में जल्दी से परिवर्तित करने का एक तरीका है - प्रत्येक शीट के लिए एक?

मैं इसे मैन्युअल रूप से कर सकता हूं, लेकिन मुझे इन फ़ाइलों को बहुत संसाधित करना होगा, इसलिए किसी प्रकार की कमांड लाइन उपयोगिता (या यहां तक ​​कि एक्सेल कमांड लाइन स्विच) होना बहुत अच्छा होगा।

जवाबों:


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मैक के लिए अपने एक्सेल पर मिलता हूं।
ब्रायन

8

बैच स्क्रिप्ट के बजाय आप XLS से CSV कनवर्टर का उपयोग कर सकते हैं जो आपको बेहतर यूजर इंटरफेस देगा

सीधा लिंक: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip

अनजिप .HTA फ़ाइल।

.HTA फ़ाइल पर डबल-क्लिक करें

यहाँ छवि विवरण दर्ज करें

उस फ़ोल्डर का पता लगाएँ जहाँ आपके पास अपनी xls फ़ाइल है

csv नामकरण स्कीमा का चयन करें और प्रारंभ रूपांतरण पर क्लिक करें जो सभी xls फ़ाइलों को फ़ोल्डर के साथ csv फ़ाइलों में बदल देगा

यदि आपके फ़ोल्डर में 3 शीट के साथ 3 xls फाइलें हैं, तो यह प्रत्येक शीट के लिए 9 csv फाइलें बनाएगा और आप csv फ़ाइल को csv नामकरण स्कीमा से पहचान सकते हैं

उम्मीद है की यह मदद करेगा!


6

यहाँ एक अजगर स्क्रिप्ट है getsheets.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!

कई सीएसवी में परिवर्तित करें:

$ 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 पंडों के एक्सेलहोम की लाइन पर मिलता हूं; मुझे लगता है कि मेरे पांडा स्थापित किसी भी तरह टूट गया है।
जेम्सन क्विन

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.