2015-05-27 12 views
18

का उपयोग कर रंगों के साथ कोशिकाओं को भरें मैं वर्तमान में पाइथन 2.7 के लिए openpyxl v2.2.2 का उपयोग कर रहा हूं और मैं कोशिकाओं में रंग सेट करना चाहता था। मैं निम्नलिखित आयातपायथन - openpyxl

import openpyxl, 
from openpyxl import Workbook 
from openpyxl.styles import Color, PatternFill, Font, Border 
from openpyxl.styles import colors 
from openpyxl.cell import Cell 

का इस्तेमाल किया है और निम्नलिखित कोड मैं उपयोग करने की कोशिश है:

wb = openpyxl.Workbook() 
ws = wb.active 

redFill = PatternFill(start_color='FFFF0000', 
        end_color='FFFF0000', 
        fill_type='solid') 

ws['A1'].style = redFill 

लेकिन मैं निम्नलिखित त्रुटि मिलती है:

Traceback (most recent call last) 
    self.font = value.font.copy() 
AttributeError: 'PatternFill' object has no attribute 'font' 

कैसे स्थापित करने के लिए पर कोई विचार openpyxl का उपयोग कर रंगों के साथ सेल ए 1 (या कोई अन्य कोशिकाएं)?

+0

क्या आप पूर्ण ट्रेस वापस – The6thSense

उत्तर

21

मेरा मानना ​​है कि समस्या यह है कि आप एक शैली को भरने वाली वस्तु को असाइन करने का प्रयास कर रहे हैं।

ws['A1'].fill = redFill ठीक काम करना चाहिए।

+2

धन्यवाद चार्ली प्रदान कर सकते हैं। मैं पाइथन के लिए काफी नया हूं और ओपनपीएक्सएल डॉक्स एक सेल में भरने के तरीके के बारे में स्पष्ट नहीं थे। आपके उत्तर ने समस्या हल कर दी है। –

4

यह मेरे लिए काम किया। उन्होंने चीजों को बदल दिया और इंटरनेट पर जो भी सहायता आप देखते हैं, वह ओपनपीएक्सएल लाइब्रेरी के पुराने संस्करणों के लिए है जो मैं देख रहा हूं।

# Change background color 
xls_cell.style = Style(fill=PatternFill(patternType='solid', 
             fill_type='solid', 
             fgColor=Color('C4C4C4'))) 
+1

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

2

शैलियों के लिए एपीआई एक बार फिर से बदल गया। मेरे लिए क्या काम किया गया

my_red = openpyxl.styles.colors.Color(rgb='00FF0000') 
my_fill = openpyxl.styles.fills.PatternFill(patternType='solid', fgColor=my_red) 
cell.fill = my_fill 

रंग अल्फा आरजीबी हेक्स रंग है। आप इसे 'rrggbb' के रूप में 00 के डिफ़ॉल्ट अल्फा के साथ पास कर सकते हैं या 'aarrggbb' के साथ अल्फा निर्दिष्ट कर सकते हैं। openpyxl.styles.colors में रंगों का एक समूह को स्थिरांक के रूप में परिभाषित किया जाता है यदि आपको एक को तुरंत पकड़ना है।

+1

my_fill = openpyxl.styles.fills.PatternFill (patternType = 'solid', fgColor = my_red) –

+0

धन्यवाद गौव! – ldrg

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