Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Python COM excel.UsedRange.Value

2 réponses
Avatar
Bertrand
Bonjour,

Je voudrais savoir comment renvoyer les cellules d'une feuille excel
(UsedRange.Value) mais au format texte. J'ai des cellules numériques
mais il faut absoluement qu'elles soient entre guillemets dans le tuple
qui est renvoyé.

Merci.

2 réponses

Avatar
R12y
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:

Bonjour,

Je voudrais savoir comment renvoyer les cellules d'une feuille excel
(UsedRange.Value) mais au format texte. J'ai des cellules numériques
mais il faut absoluement qu'elles soient entre guillemets dans le tuple
qui est renvoyé.


j'allais proposer ceci:

In [8]: l=[1,2,3,4,5]
In [9]: s=[str(i) for i in l]
In [10]: s

Out[10]: ['1', '2', '3', '4', '5']

Mais ça ne fonctionne que pour les listes, pas les tuples:

In [11]: n=(1,2,3,4,5)
In [12]: s=(str(i) for i in n)
In [13]: s

Out[13]: <generator object at 0xb7b6d0ac>

Je cherche pourquoi...

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
Laurent Pointal
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:

Bonjour,

Je voudrais savoir comment renvoyer les cellules d'une feuille excel
(UsedRange.Value) mais au format texte. J'ai des cellules numériques
mais il faut absoluement qu'elles soient entre guillemets dans le tuple
qui est renvoyé.


j'allais proposer ceci:

In [8]: l=[1,2,3,4,5]
In [9]: s=[str(i) for i in l]
In [10]: s

Out[10]: ['1', '2', '3', '4', '5']

Mais ça ne fonctionne que pour les listes, pas les tuples:

In [11]: n=(1,2,3,4,5)
In [12]: s=(str(i) for i in n)
In [13]: s

Out[13]: <generator object at 0xb7b6d0ac>

Je cherche pourquoi...


Parce que (f(x) for x in y) est une expression de générateur avec la
même syntaxe que la list-comprehension (je l'ai découvert en rédigeant
ma quick reference card...).

Si tu fais
s = tuple((str(i) for i in n))
ça devrais le faire.

n = range(10)
s = tuple((str(i) for i in n))
s
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')




Mais sinon tu faisais un "tuple(s)" avec s étant une liste, et tu
récupérais un tuple. L'avantage de passer par un générateur est que tu
évites la création intermédiaire de la liste.

A+

Laurent.