Je suis incapable de trouver des exemples où xlwt est utilisé pour écrire dans des fichiers existants. J'ai un fichier xls existant sur lequel je dois écrire. Lorsque j'utilise xlrd pour lire le fichier, je n'arrive pas à comprendre comment transformer le type "Book" renvoyé en xlwt.Workbook. J'apprécierais que quelqu'un puisse me montrer un exemple.
Réponses
Trop de publicités?Voici un exemple de code que j'ai utilisé récemment pour faire cela.
Il ouvre un classeur, descend les lignes, si une condition est remplie, il écrit des données dans la ligne. Enfin, il enregistre le fichier modifié.
from xlutils.copy import copy # http://pypi.python.org/pypi/xlutils
from xlrd import open_workbook # http://pypi.python.org/pypi/xlrd
from xlwt import easyxf # http://pypi.python.org/pypi/xlwt
START_ROW = 297 # 0 based (subtract 1 from excel row number)
col_age_november = 1
col_summer1 = 2
col_fall1 = 3
rb = open_workbook(file_path,formatting_info=True)
r_sheet = rb.sheet_by_index(0) # read only copy to introspect the file
wb = copy(rb) # a writable copy (I can't read values out of this, only write to it)
w_sheet = wb.get_sheet(0) # the sheet to write to within the writable copy
for row_index in range(START_ROW, r_sheet.nrows):
age_nov = r_sheet.cell(row_index, col_age_november).value
if age_nov == 3:
#If 3, then Combo I 3-4 year old for both summer1 and fall1
w_sheet.write(row_index, col_summer1, 'Combo I 3-4 year old')
w_sheet.write(row_index, col_fall1, 'Combo I 3-4 year old')
wb.save(file_path + '.out' + os.path.splitext(file_path)[-1])
Vous avez besoin de xlutils.copy
. Essayez quelque chose comme ça:
from xlutils.copy import copy
w = copy('book1.xls')
w.get_sheet(0).write(0,0,"foo")
w.save('book2.xls')
N'oubliez pas que vous ne pouvez pas écraser les cellules par défaut, comme indiqué dans cette question .
Je suis incapable de trouver des exemples où xlwt est utilisé pour écrire dans les fichiers existants.
Il n'y a pas d'exemples. Il n'est pas possible. Pas avec xlwt, ni avec tout autre logiciel. Le fichier XLS structure est complexe, et n'agit pas comme une base de données à laquelle vous pouvez ajouter des lignes dans une table de votre choix.
Quel que soit le logiciel que vous utilisez a pour faire comme un utilisateur avec une copie d'Excel et d'un clavier: (1) "ouvrir le fichier" c'est à dire charger le contenu dans la mémoire (2) manipuler les informations en mémoire (3) "enregistrer" (qui souffle le fichier existant et de le remplacer par un nouveau fichier) ou "enregistrer sous" (qui écrit un nouveau fichier et laisse le fichier existant inchangé).
Je vous ai dit à ce sujet il y a 12 heures, mais ici, c'est encore une fois:
Visitez ce résumé du site.
Points d'intérêt:
xlutils paquet
tutoriel sur la xlrd, xlwt, et xlutils ... contient des exemples
google-groupe / liste de diffusion pour poser ce genre de questions (aide à avoir travaillé dans le tutoriel première)