Python xlwt définit la couleur de fond personnalisée d'une cellule
j'utilise Python 2.7 et le module xlwt pour l'exportation excel
je voudrais mettre la couleur de fond d'une cellule je sais que je peux utiliser
style1 = xlwt.easyxf('pattern: pattern solid, fore_colour red;')
mais je voudrais mettre de la couleur personnalisée qch. comme # 8a8eef ou est-il une palette de couleurs possibles, parce que la lumière bleue ne fonctionne pas :)
merci
5 réponses
Si vous n'êtes pas à l'aide de easyxf()
et au lieu de cela sont la construction XFStyle
objet, étape par étape, voici une autre façon d'utiliser convivial noms de couleur:
import xlwt
style = xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = xlwt.Style.colour_map['dark_purple']
style.pattern = pattern
de nos jours, il y a un moyen (proposé à l'origine ici) pour définir et utiliser la couleur personnalisée en utilisant add_palette_colour()
et set_colour_RGB()
.
Voici un exemple:
import xlwt
book = xlwt.Workbook()
# add new colour to palette and set RGB colour value
xlwt.add_palette_colour("custom_colour", 0x21)
book.set_colour_RGB(0x21, 251, 228, 228)
# now you can use the colour in styles
sheet1 = book.add_sheet('Sheet 1')
style = xlwt.easyxf('pattern: pattern solid, fore_colour custom_colour')
sheet1.write(0, 0, 'Some text', style)
book.save('test.xls')
Voir Aussi Le pull request qui a fait cela se produire.
Pour les couleurs prédéfinies voir xlwt.Style._colour_map_text
Style.py.
pour utiliser des couleurs personnalisées, vous devrez probablement redéfinir la palette, parce que les couleurs ne sont pas utilisées directement dans les cellules, mais comme un index pour la couleur dans une palette. Je ne sais pas comment étendre la palette. Désolé.
solution Alternative:
Si vous pouvez vous en sortir avec les couleurs définies dans xlwt, accédez à une information de couleur de site comme http://www.colorhexa.com/90ee90 et correspondre à l'une des options suivantes Python Excel couleurs: http://bit.ly/1NMH67F
je recommande D'utiliser XlsxWriter, a des fonctionnalités impressionnantes aussi. http://xlsxwriter.readthedocs.io/