Python xlwt : à l'aide de easyxf pour styliser les cellules lors de l'écriture de bug

J'ai besoin de styliser certaines cellules et des lignes dans un fichier xls-je créer par le biais de mon programme, mais j'ai quelques questions, possible idées fausses sur la façon dont le xlwt easyxf ça marche.

Tout d'abord, si j'écris à la cellule sans valeur et juste le style, la valeur à l'intérieur de effacées?

Deuxième, je suis en train de l'écrire dans les cellules en utilisant le style et la valeur de la cellule, mais je reçois un message d'erreur:

"TypeError: 'XFStyle' object is not callable". -Solved

Maintenant, le problème est que les styles ne pas être mis en œuvre. Après avoir écrit les cellules, et de la sortie vers un fichier xls, il n'y avait pas de couleur,bg,la taille,les changements de police.

J'ai essayé de googler ce et a la suite des autres exemples, mais pour quelque raison que ce soit, mon code ne fonctionne pas. Ici, il est:

def stylize_spreadsheet_accordingly(iFile, workbook, row_grey, row_underline, row_font_size, cells_yellow):
#this time iFile is the file you're overwriting
#styling stuff
print "styling the document..."
new_sheet.col(0).width = 256 * 18
new_sheet.col(1).width = 256 * 69.43
new_sheet.col(2).width = 256 * 9
new_sheet.col(3).width = 256 * 20.71
new_sheet.col(4).width = 256 * 8.43
font_size_style = xlwt.easyxf('font: name Calibri, bold on, height 280;')
font_underline_style = xlwt.easyxf('font: underline on;')
fill_grey_style = xlwt.easyxf('pattern: back_color gray25;')
fill_yellow_style = xlwt.easyxf('pattern: back_color yellow;')
iBook = open_workbook(iFile)
iSheet = iBook.sheet_by_index(0)
for row_index in range(iSheet.nrows):
if row_index in row_grey:
for col_index in range(iSheet.ncols):
new_sheet.write(row_index,col_index, iSheet.cell(row_index,col_index).value, fill_grey_style)
if row_index in row_underline:
for col_index in range(iSheet.ncols):
new_sheet.write(row_index,col_index, iSheet.cell(row_index,col_index).value, font_underline_style)
if row_index in row_font_size:
for col_index in range(iSheet.ncols):
new_sheet.write(row_index,col_index, iSheet.cell(row_index,col_index).value, font_size_style)
for each in cells_yellow:
new_sheet.write(each[0], each[1], iSheet.cell(each[0],each[1]).value, fill_yellow_style)
return workbook

new_sheet est une variable globale que j'ai fait dans une autre fonction qui représente la feuille j'ai ajouté à mon xlwt classeur. Le classeur je passe en, est le fichier qui est censé contenir que new_sheet. J'ai peut-être trop de complication ou de le faire de manière éthique, mais il fonctionne.

P. S. Si il y a un autre moyen je pourrais faire ceci ou modifier certaines cellules plein de couleur d'une manière différente, s'il vous plaît laissez-moi savoir. Encore une fois, merci.

Merci, j'ai corrigé le code à ce que vous les gars a dit, et la TypeError est allé loin, mais après c'est terminé, aucune des options de style que j'ai créé et utilisé, est allé à travers. Le fichier xls était encore dans son format par défaut. Comment cela peut-il être?

OriginalL'auteur Michael M | 2012-08-16