2013-05-15 4 views
19

मेरे पास एक एक्सेल फ़ाइल है जिसमें कॉलम की एक अलग संख्या है, मैं उस फ़ाइल के कुछ कॉलम (उनके हेडर पंक्ति मान से) पाइपन का उपयोग करके लूप करना चाहता हूं, फिर उन कॉलम को अन्य एक्सेल फ़ाइल में लिखें (कॉपी करें)।पायथन का उपयोग करके, किसी अन्य एक्सेल फ़ाइल से कॉपी किए गए कॉलम के साथ एक एक्सेल फ़ाइल लिखें

कोई उदाहरण यह है कि मैं इसे कैसे कर सकता हूं?

उत्तर

36

यहाँ कुछ विकल्प चुनने के लिए कर रहे हैं से:

  • xlwt (लेखन xls फ़ाइलें)
  • xlrd (पढ़ने xls/xlsx फ़ाइलों)
  • openpyxl (पढ़ने/लिखने xlsx फ़ाइलों)
  • xlsxwriter (xlsx फ़ाइलों को लिखना)

यदि आपको कॉपी करने की आवश्यकता है केवल डेटा (फ़ॉर्मेटिंग जानकारी के बिना), आप इन उपकरणों के किसी भी संयोजन को पढ़ने/लिखने के लिए उपयोग कर सकते हैं। यदि आपके पास xls फ़ाइल है, तो आपको xlrd + xlwt विकल्प के साथ जाना चाहिए।

यहाँ नया एक के लिए मौजूदा एक्सेल फ़ाइल से पहली पंक्ति को कॉपी का एक सरल उदाहरण है:

import xlwt 
import xlrd 

workbook = xlrd.open_workbook('input.xls') 
sheet = workbook.sheet_by_index(0) 

data = [sheet.cell_value(0, col) for col in range(sheet.ncols)] 

workbook = xlwt.Workbook() 
sheet = workbook.add_sheet('test') 

for index, value in enumerate(data): 
    sheet.write(0, index, value) 

workbook.save('output.xls') 
+0

हाय, आप कृपया मुझे बताओ कैसे एक पंक्ति के बजाय एक स्तंभ कॉपी करने के लिए कर सकता है? –

+1

@ माइकइसा निश्चित रूप से, मुझे लगता है कि आपको केवल 'इंडेक्स' को स्वैप करने की आवश्यकता है और 0 (0 वह कॉलम इंडेक्स होगा जिसे आप प्रतिलिपि बनाना चाहते हैं)। – alecxe

+0

इसे समझ लिया। पंक्ति में पंक्ति के लिए 'data = [sheet.cell_value (पंक्ति, 0) (sheet.nrows)]' –

संबंधित मुद्दे