本章介绍openpyxl 的应用——把一个sheet表拆分成多个excel文件。用openpyxl比较麻烦,建议用pandas,用openpyxl来练习是没有问题的。和上一篇一样,同一把数据先转为字典,然后根据键值对分别创建不同班级的文件。
import openpyxl
file = openpyxl.load_workbook(r"D:\临时\python试验\openpyxl\把sheet拆分成多个文件.xlsx")
sheet = file['Sheet1']
d = {}
for row in sheet.iter_rows(2,sheet.max_row,1,sheet.max_column,values_only=True):
row_ls = list(row)
jian = row_ls[0]
zhi = row_ls[1:]
d[jian] = d.get(jian,[]) + [zhi]
for key,value in d.items():
f = openpyxl.Workbook()
st = f.active # 获取活跃工作表,即创建f工作簿时默认产生的Sheet表
for n_row in value:
st.append(n_row)
road = f'D:\临时\python试验\openpyxl\ls存放\{key}.xlsx'
f.save(road) # 保存
f.close() # 关闭f,释放内存
和前几篇相比,只是操作改变一点点,思路不一样而已,没有过多的难点,唯一难点就是 d[jian] = d.get(jian,[]) + [zhi] 这行代码,如果你理解到了,那么你对python是非常熟练了。
本文excel文件:链接:https://pan.baidu.com/s/1_WV4ja_I49jZpEcF697LzQ?pwd=d9bm
提取码:d9bm