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    |
--------------------
21
demandé sur John Y 2013-10-30 06:28:46

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.

48
répondu Peter DeGlopper 2014-04-05 06:54:20