如何使用OpenPyXl在Excel中更改日期格式
使用openpyxl
库中的Excel中的日期数据时,您可能需要将日期格式更改为特定格式,然后将其写入Excel文件。在本教程中,我们将指导您完成更改日期格式的过程,并使用openpyxl
将其写入Excel文件。
步骤1:导入所需库
要开始,我们需要导入必要的库:pandas
,openpyxl
和openpyxl.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()