कैसे बैच में कनवर्ट करें .xv से .xls / xlsx


11

मैं .xv फ़ाइलों की निर्देशिका को जल्दी से .xls या .xlsx प्रारूप में बदलने का एक तरीका ढूंढ रहा हूं (यदि मैं या तो / या कर सकता था तो अच्छा होगा)।

क्या ऐसा करने का एक आसान तरीका है या मुझे तीसरे पक्ष के कार्यक्रम को स्थापित करने की आवश्यकता है?


1
निश्चित नहीं है कि आपको ऐसा करने की आवश्यकता क्यों होगी। एक्सेल में सीएसवी का खुला कुआँ। किसी को भी बातचीत करने की जरूरत है सिर्फ मुद्दे के बिना खुल सकता है।
जोड़ी

2
आप सही हैं एक्सेल सीएसवी खोलता है और xls / xlsx ठीक है। अन्य कार्यक्रम, हालांकि, नहीं। =)
mindless.panda

1
तो क्या आप इस कार्यक्रम का उपयोग करने के लिए देख रहे हैं?
कर्क

जवाबों:


21

आपको पसंद है और पायथन है (किसी कारण के लिए), आप इस स्क्रिप्ट का उपयोग कर सकते हैं, जिसे मैं मार पड़ी हूं:

import os
import glob
import csv
import xlwt # from http://www.python-excel.org/

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    wb = xlwt.Workbook()
    ws = wb.add_sheet('data')
    with open(csvfile, 'rb') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader):
            for c, val in enumerate(row):
                ws.write(r, c, val)
    wb.save(csvfile + '.xls')

सभी CSV फ़ाइलों के साथ निर्देशिका में भाग गया, यह उन सभी को रूपांतरित करेगा और अंत में ".xls" को थप्पड़ मारेगा।

एक्सेल 2007+ (xlsx फ़ाइलों) के लिए लगभग 1 Mrows तक का समर्थन:

import os
import glob
import csv
import openpyxl # from https://pythonhosted.org/openpyxl/ or PyPI (e.g. via pip)

for csvfile in glob.glob(os.path.join('.', '*.csv')):
    wb = openpyxl.Workbook()
    ws = wb.active
    with open(csvfile, 'rb') as f:
        reader = csv.reader(f)
        for r, row in enumerate(reader, start=1):
            for c, val in enumerate(row, start=1):
                ws.cell(row=r, column=c).value = val
    wb.save(csvfile + '.xlsx')

2
एक Macintosh पर, मैंने ऊपर xlsx संस्करण का उपयोग किया। मुझे पायथन से "यूनिवर्सल-न्यूलाइन मोड" त्रुटि के आसपास पाने के लिए "आरबी" को "आरयू" में बदलना पड़ा। "एनुमरेट में पंक्तियों" के लिए "स्टार्ट = 1" और "एन्यूमरेट में वैल" का उपयोग करके ऊपर एक रिक्त पंक्ति और वास्तविक डेटा के एक खाली कॉलम बनाया गया। मैंने दोनों को "स्टार्ट = 0" में बदल दिया, जिसने स्प्रेडशीट (एक्सेल 2011) के सेल A1 (ऊपरी बाएं) में डेटा शुरू किया। मैंने अंतिम पंक्ति को "wb.save (os.path.splitext (csvfile) [0] + '.xlsx')" फ़ाइल के .csv भाग (जैसे, nnnn.csv.xlsx) से nnnn में बदलने के लिए बदल दिया है। xlsx)।
माइकल एस टेलर

1

यहाँ एक पर्ल स्क्रिप्ट है जो माना जाता है कि यह करता है, लेकिन ऐसा लगता है कि बहुत से काम ऐसे हैं जो पहले से ही एक्सेल में बने हैं।


1

आपके प्रश्न में बहुत कुछ छूट गया है।

यह मानते हुए कि आपकी सीवीएस फाइलें निर्देशिका संरचना के समान हैं

c:\randompath\CSV\
    a.csv
    b.csv
    c.csv
      :
      :
    z.csv

और आप के साथ समाप्त करना चाहते हैं

c:\randompath\XLS\
    a.xls
    b.xls
    c.xls
      :
      :
    z.xls

मैं उन तीन मार्गों के बारे में सोच सकता हूं, जो आपके द्वारा किए जाने वाले साफ-सफाई के काम के अपफ्रंट वर्क के अनुपात पर निर्भर करते हैं।

  1. कोई Precoding: CSV फ़ाइलों को नेविगेट करने के लिए Windows एक्सप्लोरर का उपयोग करें जो फ़ाइलों को परिवर्तित करने के लिए चयन करने के लिए जो भी विधि सबसे अच्छा काम करती है (lasso, ctrl + a, ctrl + click, shift + click) फिर दाईं ओर चयनित फ़ाइलों में से एक पर क्लिक करें और चालू करें पर क्लिक करें। खुला हुआ। इससे एक्सेल में सभी फाइलें खुल जाएंगी। फिर प्रत्येक फ़ाइल के लिए आप "फ़ाइल" और "इस रूप में सहेजें" का चयन कर सकते हैं और अंत में नया फ़ाइल स्वरूप चुनें जिसे आप इसे सहेजना चाहते हैं।
  2. एक साधारण बैच फ़ाइल: वह बैच फ़ाइल आपके लिए CSV फ़ाइलों में से प्रत्येक को खोलने के लिए वाइल्ड कार्ड और / या प्रत्येक लूप संरचना के लिए उपयोग कर सकती है।
  3. एक्सेल स्प्रेडशीट के भीतर एक VBA प्रोग्राम बनाएं: VBA प्रत्येक CSV फ़ाइल को स्वचालित रूप से खोल सकता है और फिर इसे एक्सेल प्रारूप में सहेज सकता है। आप एक साधारण संदेश बॉक्स भी जोड़ सकते हैं जो प्रत्येक फ़ाइल के खुलने पर या तो xls या xlsx का विकल्प प्रदान करता है।

ध्यान दें कि मैंने इन चीजों को करने के लिए कोई कोड नहीं लिखा है (फिर भी) मैं अभी शुरुआती बिंदु के लिए विचार प्रस्तुत कर रहा हूं। शायद अगर आप इस बारे में अधिक जानकारी दे सकते हैं कि आप क्या चाहते हैं तो आप मुझसे या किसी अन्य मंच के सदस्य से दृष्टिकोण को कैसे संभाल सकते हैं, इसके बारे में अधिक विस्तृत स्पष्टीकरण प्राप्त कर सकते हैं।


0

विंडोज के लिए? CoolUtils " कुल CSV कन्वर्टर " कमांड लाइन संस्करण JSON, Access, DBF, XML और SQL सहित कई आउटपुट प्रारूपों का समर्थन करता है और केवल $ 40 है। यह उप-निर्देशिकाओं की पुनरावृत्ति कर सकता है, मूल CSV फ़ाइलों को हटा सकता है, सभी फ़ाइलों को एक दस्तावेज़ में जोड़ सकता है, और बहुत कुछ।

http://www.coolutils.com/TotalCSVConverter

CSVConverter.exe <source> <destination> <options>

" उन्नत सीएसवी कन्वर्टर " ($ 40-200) एक पोर्टेबल ईएक्सई है जो इसे जल्दी और एक्सेल स्थापित किए बिना कर सकता है।

http://www.dbf2002.com/csv-converter/commandline.html

"c:\Program Files\CSV Converter\csvcnv.exe" c:\base\*.csv c:\exports\ /TOXLSX /SRCHDR

सॉफ्टइंटरफेस के " कन्वर्ट एक्सएलएस" एक्सेल का उपयोग कर सकते हैं (लेकिन इसकी आवश्यकता नहीं है) और अधिक महंगा ($ 500 +) है, लेकिन अधिक प्रारूपों का समर्थन करता है और अधिक विकल्प हैं।

http://www.softinterface.com/Convert-XLS/Convert-XLS.htm

"c:\Program Files (x86)\Softinterface, Inc\Convert XLS\ConvertXLS.exe" /V /S"c:\base\*.csv" /T"c:\exports\*.xlsx" /F6 /C51 /M2

" ग्नुमेरिक " एक ओपन-सोर्स स्प्रेडशीट प्रोग्राम है जो प्रत्यक्ष रूपांतरण कर सकता है, लेकिन इसे 2014 के अगस्त में विंडोज के लिए बंद कर दिया गया था।

http://www.gnumeric.org/

ssconvert file.csv file.xlsx

यदि आपके पास पायथन स्थापित है, तो " csv2odf " एक ओपन-सोर्स विकल्प है और ओड्स , ओडीटी , एचटीएमएल, xlsx, या डॉक्स फ़ाइलों को जनरेट करने के लिए एक टेम्प्लेटेड दृष्टिकोण का उपयोग करता है।

http://sourceforge.net/projects/csv2odf/

csv2odf data.csv template.odt output.xlsx

0

नोड 8+ और बैश के साथ:

npm install -g pguardiario/csv2xlsx

for file in *.csv; do csv2xlsx "$file"; done

-1

आसान तरीका: Microsoft Excel से अपनी सीएसवी फ़ाइल खोलें, पाठ को कॉलम में परिवर्तित करें (कोशिकाओं / पाठ का चयन करें, मेनू पर क्लिक करें - डेटा - कॉलम में पाठ) कन्वर्ट करने के लिए अपना विकल्प सेट करें।

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