手把手教你用Python批量创建1-12月份的sheet表,每个表的第一行都有固定3个列标题:A,B,C
大家好,我是Python进阶者。今天继续给大家分享Python自动化办公的内容,最近我发现学习自动化办公的小伙伴还是挺多的,创建了一个自动化办公专辑,欢迎大家前往学习:
【Excel篇】
1、 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
2、 手把手教你使用openpyxl库从Excel文件中提取指定的数据并生成新的文件(附源码)
3、 手把手教你4种方法用Python批量实现多Excel多Sheet合并
4、 手把手教你利用Python轻松拆分Excel为多个CSV文件
5、 老板让我从几百个Excel中查找数据,我用Python一分钟搞定!
8、 利用Python将Word试卷匹配转换为Excel表格
【未完待续......】
前言
前几天在铂金交流群里,有个叫【LEE】的粉丝在Python交流群里问了一道关于Python自动化办公的问题,初步一看觉得很简单,实际上确实是有难度的,题目如下图所示。
二、解决思路
如果是按照常规思路,无非是先创建一个Excel表格,之后把1-12月份共12个表格依次在Excel工作簿中进行创建,之后给每一个表加入列标题A、B、C,再之后,我们依次复制该Excel表格,之后进行重命名,以年份作为表格命名。这个思路绝对是可行的,加以时间,肯定不在话下,我大概算了下,如果只是复制个20个Excel表,依次复制粘贴,之后重命名,大概算下来,如果不出错的情况下(比方说迷糊了,糊涂了......),需要5分钟左右的时间。不过这里给大家介绍一个使用Python自动化办公的方法来帮助大家解决问题,也保证不会出错,大概10秒钟左右就可以完成战斗。
其实【LEE】自己也尝试使用Python来解决,不过却遇到了点问题,虽然Excel文件是创建了,但是后面的月份写入和列名写入失败了。
三、解决方法
这里给出【🌑(这是月亮的背面】大佬】提供的代码,大体思路其实是差不多的,但是实现的方法却是用Python程序来实现的,效率就十分不一样了。下面直接来看代码吧!
# coding: utf-8
import pandas as pd
import openpyxl
df = pd.DataFrame({'A': [], 'B': [], 'C': []})
for year in range(1999, 2022):
path_name = f'./{year}年.xlsx'
with pd.ExcelWriter(path_name, engine='openpyxl', mode='w+') as writer: