如何使用OpenPyXl更改Excel中的日期格式?
#python #excel #pandas #openpyxl

如何使用OpenPyXl在Excel中更改日期格式

使用openpyxl库中的Excel中的日期数据时,您可能需要将日期格式更改为特定格式,然后将其写入Excel文件。在本教程中,我们将指导您完成更改日期格式的过程,并使用openpyxl将其写入Excel文件。

步骤1:导入所需库

要开始,我们需要导入必要的库:pandasopenpyxlopenpyxl.styles

import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import NamedStyle

步骤2:使用日期列创建一个数据框

接下来,我们将创建一个带有日期列的数据框。在此示例中,我们将生成一系列从“ 2018-1-1”到“ 2019-1-1”的日期。

df = pd.DataFrame({'DATE': pd.date_range(start='2018-1-1', end='2019-1-1')})

步骤3:将日期列分配给数据框中的多个列

为了演示不同的日期格式,我们将分配日期列到数据框中的多个新列。

df = df.assign(DATE2=df["DATE"])
df = df.assign(DATE3=df["DATE"])

步骤4:创建一个Excel工作簿并命名样式

我们将使用pd.ExcelWriter创建一个Excel工作簿,并将引擎指定为“ OpenPyXl”。此外,我们将定义三种具有不同日期格式的命名样式。

ewb = pd.ExcelWriter('test.xlsx', engine="openpyxl")
nsmmyy = NamedStyle(name="cd1", number_format="MM-YY")
nsmmmyy = NamedStyle(name="cd2", number_format="MMM-YY")
nsbyy = NamedStyle(name="cd3", number_format="MMMM-YY")

步骤5:将数据框写入工作簿

我们将使用Excel Writer的to_excel方法将数据框写入Excel工作簿。

df.to_excel(excel_writer=ewb, sheet_name="SHT1")

步骤6:将命名样式应用于日期列

要更改excel中的日期格式,我们将在日期列中迭代每个单元格,并应用适当的命名样式。

ws = ewb.book["SHT1"]
for i in range(1, len(df) + 2):
    ws.cell(row=i, column=2).style = nsmmyy
    ws.cell(row=i, column=3).style = nsmmmyy
    ws.cell(row=i, column=4).style = nsbyy

步骤7:保存工作簿

最后,我们将使用Excel Writer的save方法保存工作簿。

ewb.save()

结果如何?

Resultant excel document