Este código:
dateCol = []
for row in ws3.iter_rows(min_col=1, max_col=1, min_row=7, max_row = None):
for cell in row:
dateCol.append((ws3.cell(row=cell.row, column=1).value))
dateCol
Produce esta lista:
[datetime.datetime(2019, 10, 7, 0, 0),
datetime.datetime(2019, 10, 3, 0, 0),
datetime.datetime(2019, 10, 3, 0, 0),
datetime.datetime(2019, 10, 14, 0, 0),
datetime.datetime(2019, 10, 15, 0, 0),
...]
En Excel, las fechas se ven así:
¿Cómo convierto estas fechas a mm / dd / aaaa? He tenido problemas con esto como se muestra en (que puedo eliminar pronto, ya que está menos apuntado):
Lo descubrí ... ¡finalmente! No pude obtener una lista de fechas para guardar en Excel sin que Excel altere el formato de fecha. Luego usé openpyxl iter_rows para iterar a través de cada celda en una sola columna y aplicar un estilo de fecha a cada celda.
La lección que he aprendido aquí es que no es suficiente alterar los datos en una lista y luego guardarlos para sobresalir. Excel alterará el formato de la fecha. Debe aplicar un estilo de nombre a la celda para modificar el formato de fecha y no alterar el valor de la celda. Los estilos con nombre se definen aquí:
https://openpyxl.readthedocs.io/en/stable/styles.html#cell-styles-and-named-styles
Todo tiene sentido ahora.
from openpyxl import load_workbook
HISNonLive3 = "C:\\folder\\input.xlsx"
wb3=load_workbook(HISNonLive3)
ws3 = wb3['Non Live Integ Support Stage']
from openpyxl.styles import NamedStyle
date_style = NamedStyle(name='datetime', number_format='MM/DD/YYYY')
for rows in ws3.iter_rows(min_row=7, max_row=None, min_col=1, max_col=1):
for cell in rows:
cell.style = date_style
wb3.save('C:\\folder\\output.xlsx')
escribe lo siguiente en una hoja de cálculo de Excel como:
Había hecho algo similar con los bordes de las celdas y los colores usando estilos openpyxl. Luego noté esto en el documento de estilo openpyxl https://openpyxl.readthedocs.io/en/stable/styles.html :
number_format = 'General'
Esa fue la pista que necesitaba de que si una celda tiene una fecha o un valor numérico, podría formatearse con un estilo como los colores o los bordes.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras