Comment écrire une cellule avec plusieurs colonnes dans xlwt?
j'aimerais écrire une table comme celle-ci:
----------------
| Long Cell |
----------------
| 1 | 2 |
----------------
Comment écrire la cellule Long Cell
? Grâce.
j'ai essayé de faire comme ceci:
sheet.write(0, 0, 'Long Cell')
sheet.write(1, 0, 1)
sheet.write(1, 1, 2)
Mais il finir comme:
--------------------
| Long Cell | |
--------------------
| 1 | 2 |
--------------------
1 réponses
autant Que je peux dire, ce n'est pas documenté - vous de lire le code source pour le trouver. Il y a deux méthodes sur le Worksheet
classe pour ce faire, write_merge
et merge
. merge
prend les cellules existantes et les fusionne, alors que write_merge
écrit une étiquette (comme write
) et fait ensuite la même chose merge
ne.
les deux prennent les cellules pour fusionner comme r1, r2, c1, c2
, et d'accepter une option style
paramètre.
à Partir de votre exemple, ce serait le plus simple appel:
sheet.write_merge(0, 0, 0, 1, 'Long Cell')
sheet.write(1, 0, 1)
sheet.write(1, 1, 2)
Pour être plus explicite sur la manière dont l'appel fonctionne:
top_row = 0
bottom_row = 0
left_column = 0
right_column = 1
sheet.write_merge(top_row, bottom_row, left_column, right_column, 'Long Cell')
alternativement, en utilisant merge
:
sheet.write(top_row, left_column, 'Long Cell')
sheet.merge(top_row, bottom_row, left_column, right_column)
merge
a certains commentaires dans le source en soulignant les problèmes potentiels:
# Problems: (1) style to be used should be existing style of # the top-left cell, not an arg. # (2) should ensure that any previous data value in # non-top-left cells is nobbled. # Note: if a cell is set by a data record then later # is referenced by a [MUL]BLANK record, Excel will blank # out the cell on the screen, but OOo & Gnu will not # blank it out. Need to do something better than writing # multiple records. In the meantime, avoid this method and use # write_merge() instead.
Mais ce serait bien pour un cas simple comme ça.