我需要新建一个excel,2024年日历表
第一行第一列为1月1日,第一行就是1月
第二行第一列为2月1日,第二行就是2月
周六周日标记绿色。
PYTHON咋写?
【以下回答由 GPT 生成】
我可以使用openpyxl库来创建Excel日历表。下面是具体的解决方案:
首先,我需要安装openpyxl库。可以使用以下命令来安装:
pip install openpyxl
接下来,我会编写一个Python脚本来生成Excel日历表。下面是代码的实现:
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter
# 创建一个新的Excel文件
workbook = openpyxl.Workbook()
# 获取默认的工作表
sheet = workbook.active
# 设置列宽为15
column_width = 15
for col in range(1, 13):
sheet.column_dimensions[get_column_letter(col)].width = column_width
# 创建标题行
months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
for col, month in enumerate(months, start=1):
sheet.cell(row=1, column=col).value = month
# 获取2024年的日期范围
start_date = '2024-01-01'
end_date = '2024-12-31'
date_format = '%Y-%m-%d'
start_datetime = datetime.strptime(start_date, date_format)
end_datetime = datetime.strptime(end_date, date_format)
date_range = pd.date_range(start_datetime, end_datetime).tolist()
# 填充日期数据
row = 2
for date in date_range:
col = date.month
sheet.cell(row=row, column=col).value = date.day
# 如果是周六或周日,设置单元格的背景颜色为绿色
if date.weekday() >= 5:
cell = sheet.cell(row=row, column=col)
green_fill = PatternFill(start_color="00FF00", end_color="00FF00", fill_type="solid")
cell.fill = green_fill
# 如果已经到了一个月的最后一天,换行到下一行
if date == date_range[-1] or date.day == calendar.monthrange(date.year, date.month)[1]:
row += 1
# 保存Excel文件
workbook.save('2024_calendar.xlsx')
这段代码首先导入了openpyxl库,并引入了一些需要使用的模块。然后,创建一个新的Excel文件,并获取默认的工作表。接下来,设置列宽为15,以适应每个月的单元格。然后,创建标题行,将月份名称填充到第一行中。接下来,根据2024年的日期范围,用日期循环填充每个月的日期数据到工作表中,并根据日期的星期几来设置单元格的背景颜色。最后,保存Excel文件。
以上就是使用Python创建2024年Excel日历表的解决方案。
【相关推荐】