OVH Cloud OVH Cloud

Créer feuille excel

2 réponses
Avatar
Bertrand
Bonjour,

Je veux créer une feuille excel et injecter les valeurs d'une liste.
L'utilisation de for i in est trop lente.

Si je fais directement un excel.ActiveSheet.Cells.Value = liste, alors
c'est les 65535 ligne et colonnes qui sont remplies.

Comment faire pour passer à la feuille excel la dimensiond de la liste
(ou liste de liste) ?


Merci !

2 réponses

Avatar
Eric Deveaud
Bertrand wrote:
Bonjour,

Je veux créer une feuille excel et injecter les valeurs d'une liste.
L'utilisation de for i in est trop lente.

Si je fais directement un excel.ActiveSheet.Cells.Value = liste, alors
c'est les 65535 ligne et colonnes qui sont remplies.


remplir les 65535 - (taille de la liste) ligne et colonnes restantes avec
du vide ;-)

Eric

Avatar
Bertrand
Oui, ou se la jouer plus fin avec

self._excel.Range(self._excel.Cells(1,1),self._excel.Cells(len(self._datas),len(self._datas[0]))).Value
= self._datas


def createSheet(self):
self._excel = Dispatch("Excel.Application")
self._excel.Visible = 0
if os.path.isfile(self._file) == False:
self._fic = open(self._file,'a')
self._fic.close()
else:
os.rename(self._file,self._file+".bak")
self._fic = open(self._file,'a')
self._fic.close()
self._excel.Workbooks.Open(Filename=self._file)

self._excel.Workbooks(1).Sheets(1).Cells.Clear()

self._excel.Range(self._excel.Cells(1,1),self._excel.Cells(len(self._datas),len(self._datas[0]))).Value
= self._datas

print "YES", os.path.isfile(self._file)


self._excel.Workbooks(1).Save()
self._excel.Workbooks(1).Close(SaveChanges=0)
self._excel.Quit()


Bertrand wrote:
Bonjour,

Je veux créer une feuille excel et injecter les valeurs d'une liste.
L'utilisation de for i in est trop lente.

Si je fais directement un excel.ActiveSheet.Cells.Value = liste, alors
c'est les 65535 ligne et colonnes qui sont remplies.


remplir les 65535 - (taille de la liste) ligne et colonnes restantes avec
du vide ;-)

Eric