2011-10-05 20 views
10

मैं xlwt मॉड्यूल का उपयोग कर एक्सेल में टेक्स्ट फ़ाइलों को आयात कर रहा हूं। लेकिन यह केवल 256 कॉलम संग्रहीत करने की अनुमति देता है। क्या इस समस्या को हल करने के कोई तरीके हैं?पायथन - 256 से अधिक कॉलम

उत्तर

1

क्या यह तथ्य का एक बयान है या 256 से अधिक कॉलम का समर्थन करना चाहिए? आपको क्या त्रुटि मिल रही है? आपका कोड कैसा दिखता है?

यदि यह वास्तव में 256 कॉलम सीमा है, तो उचित पाइथन मॉड्यूल का उपयोग करके एक सीएसवी फ़ाइल में अपना डेटा लिखें और फ़ाइल को एक्सेल में आयात करें। xlwt पैकेज में फ़ाइल Column.py में

0

लाइन 8 256 करने के लिए स्तंभ सीमा निर्धारित करता है:

raise ValueError("column index (%r) not an int in range(256)" % colx) 

आप xlwt स्रोत इस नंबर को बदल सकता है अधिक स्तंभों अनुमति देने के लिए, लेकिन यह (पुराने के साथ संगतता टूट जाएगा संपादित करें: सभी) एक्सेल के संस्करण।

संपादित xlwt मेंटेनर का कहना है कि इस काम नहीं करेगा, तो करने के लिए यह (मैं इस सवाल का जवाब यहाँ के रूप में मुझे लगता है कि यह चेतावनी है करने के लिए उपयोगी है छोड़ देंगे) की कोशिश नहीं करते।

+0

मैंने बदल दिया, लेकिन यह दोस्त नहीं है – Ricky

+0

वाह, मेरा पहला ऋण वोट! अपना त्रुटि संदेश देखें (जिसे आपने अपने उत्तर में जोड़ा है) और ROW.py में पंक्ति 76 को भी ठीक करें। यह वही समस्या है। –

+4

और यदि आप बाशी-बाजौक की तरह चलते रहें तो आखिरी नहीं। बदलने के लिए तीन स्थान हैं। ऐसा नहीं है कि इससे मदद मिलेगी। एक्सेल 2007 अपठनीय डेटा के बारे में चिल्लाता है, वसूली का प्रयास करता है, और बुरी तरह विफल रहता है। टीएफ आपको क्यों लगता है कि उन त्रुटि जांच वहां हैं? ** xlwt रखरखाव से एक संदेश: ऐसा मत करो। यह समय और प्रयास की बर्बादी है। एक्सेल 2003, 2007 और 2010 फ़ाइल खोलने से इनकार कर देंगे। ** –

13

xlwt Excel 97-2003 द्वारा बनाई गई प्रकार की एक्सएलएस फ़ाइलों के निर्माण का समर्थन करता है और एक्सेल 97 के बाद पढ़ता है। फ़ाइल प्रारूप 256 कॉलम और 65536 पंक्तियों तक सीमित है। xlwt स्रोत कोड में किसी अन्य नंबर पर 256 को बदलने की कोई भी राशि उसमें परिवर्तित नहीं होगी।

आप जटिलता के बढते क्रम में 3 विकल्प हैं,:

(1) के रूप में एक और ने सुझाव दिया, एक CSV फ़ाइल लिखें।

(2) openpyxl ... Excel 2007+ xlsx/xlsm प्रारूप

(3) Win32 कॉम (केवल Windows)

+0

मेरे लिए क्या काम किया गया विकल्प 2 का एक अलग संस्करण था। मैंने xlswriter (https://pypi.python.org/pypi/XlsxWriter) का उपयोग किया क्योंकि इसके बजाय कोड में बदलाव करने के लिए परिवर्तन (मेरे लिए) workbook_name = "testraw.xls"> workbook_name = "testraw.xlsx", wb = xlwt.Workbook()> wb = xlsxwriter.Workbook (name), ws = wb.add_sheet (sheet_name)> ws = wb.add_worksheet (sheet_name), wb .save (sheet_name + 'xlsx')> wb.close()। यह किसी को तेजी से स्थानांतरित करने में मदद कर सकता है। एक्सेल 12 उर्फ ​​एक्सेल 2007 ने .xlsx और .xlsb पेश किया जो 16,384 कॉलम द्वारा 1,048,576 पंक्तियों का समर्थन करता है। इसलिए अधिकांश उद्देश्यों के लिए करना चाहिए। – Aameer

0

उपयोग xlsxwriter और पांडा की।

import xlsxwriter, pandas 

writer = pandas.ExcelWriter(file, engine='xlsxwriter') 
pandas.to_excel(writer, sheet_name='Sheet1') 
writer.save() 
+0

सवाल विशेष रूप से 'xlwt' मॉड्यूल के बारे में पूछ रहा है – Milk

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