需求:
vab 程序 https://www.cnblogs.com/shanger/p/12993804.html
vba 的 sub 過程交互性不很好,泛化性也不是很好。
Python 使用 pandas 和 openpyxl 簡單明了,泛化性更好。
1、加載包
import pandas as pd import openpyxl
2、讀取表格
wb_file = 'E:\\excel_vba\\test.xlsx'
df = pd.read_excel( wb_file) df
3、去重生成指定的表名
new_sheet_names = df['班級'].drop_duplicates()
new_sheet_names
4、插入指定名稱的工作表,保存
wb = openpyxl.load_workbook(wb_file) # 加載工作表 for name in new_sheet_names: wb.create_sheet(title=name) # 插入工作表,指定名稱,index 參數默認為 -1 new_wb_file = os.path.join(os.path.dirname(wb_file), 'test_1.xlsx')
wb.save(new_wb_file)
結果:
完整代碼:
import os import pandas as pd import openpyxl wb_file = 'E:\\excel_vba\\test.xlsx'
df = pd.read_excel( wb_file) wb = openpyxl.load_workbook(wb_file) # 加載工作表 for name in df['班級'].drop_duplicates():
wb.create_sheet(title=name) # 插入工作表,指定名稱,index 參數默認為 -1 new_wb_file = os.path.join(os.path.dirname(wb_file), 'test_1.xlsx')
wb.save(new_wb_file)