[win32com][Excel]Formatter une cellule pour les dates
Bonjour
En utilisant win32com, je créer des fichiers excel dans lesquels j'insère des dates.
Ce bout code marche très bien:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import win32com.client
# open excel
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = 1
workbook = excel.Workbooks.Add()
worksheet = excel.Worksheets[0]
worksheet.Name = "Données"
worksheet.Cells(1,1).Value = "Date/Heure"
worksheet.Cells(2,1).Value = "25/12/2008 12:30:05"
#worksheet.Cells(2,1).NumberFormat = "dd/mm/yyyy hh:mm"
workbook.SaveAs( "toto.xls" )
excel.Quit() |
Je souhaite forcer le format de la date (essai entre commentaire), mais je n'y arrive pas.
Je ne suis pas un expert de ce genre de manipulation, cependant, empiriquement en enregistrant les macros, puis en les éditant, je trouvais des pistes.
Par exemple ici une macro qui impose un format pour la date:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 08/07/2009 par E. Dumas
'
'
Range("A2").Select
Selection.NumberFormat = "d/m/yy h:mm;@"
End Sub |
En général, je trouvais comment utiliser une fonction précise.
Cependant dans ce cas précis, la ligne :
Code:
1 2
|
worksheet.Cells(2,1).NumberFormat = "dd/mm/yyyy hh:mm" |
me donne cette erreur :
worksheet.Cells(2,1).NumberFormat = "dd/mm/yyyy hh:mm"
File "C:\dlbi\Python25\Lib\site-packages\win32com\client\dynamic.py", line 538, in __setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
pywintypes.com_error: (-2147352567, "Une exception s'est produite.", (0, u'Microsoft Excel', u'Impossible de d\xe9finir la propri\xe9t\xe9 NumberFormat de la classe Range.', u'C:\\Program Files\\Microsoft Office\\Office10\\1036\\xlmain10.chm', 0, -2146827284), None)
Est-ce que quelqu'un peut m'aider sur comment mettre dans cette cellule la date à un certain format.
Cordialement
Emmanuel