手把手教你用Python批量創建1-12月份的sheet表,每個表的第一行都有固定3個列標題:A,B,C
一 前言
前幾天在鉑金交流群里,有個叫【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:
- for month in range(1, 13):
- df.to_excel(writer, index=False, sheet_name=f'{month}月份')
- print('文件生成完成')
這里大佬使用了openpyxl寫入引擎,先把列名模板寫好,之后遍歷年份,創建Excel表格,之后寫入月份,不得不驚嘆,竟然還有這種寫法,讓人為之一驚!
代碼運行之后,在代碼目錄下會自動生成相應的Excel文件,如下圖所示。
之后每個Excel表格中,也有對應的月份和A、B、C列名,如下圖所示。
四、總結
我是Python進階者。本文基于粉絲針對Python自動化辦公的提問,給出了一個利用Python基礎+openpyxl的解決方案,完全滿足了粉絲的要求,給粉絲節約了大量的時間。
【編輯推薦】