现在,假设你是公司的人力资源管理部门的一名员工,或者是一名行政管理员工,需要对公司本年度的技术分享。因此,你需要发送一个Excel文档技术分享报名表模板给到公司各位同事,让公司的同事自行填写。填写完成后,你需要将每一位同事返回的Excel文档合并成一个文档。
下图为人力资源员工或行政人员发给公司各位同事的报名表文档。
技术分享报名报模板
#!/usr/bin/env pythonimport osimport globimport openpyxlimport pandas as pd# 合并多个Excel文档def merge_xlsx_files(xlsx_files): # 获取第一个文档中的表格 wb = openpyxl.load_workbook(xlsx_files[0]) ws = wb.active ws.title = "merged result" # 遍历其他文件中的报名表 for filename in xlsx_files[1:]: workbook = openpyxl.load_workbook(filename) sheet = workbook.active # 利用iter_rows函数忽略报名表中的首行内容 for row in sheet.iter_rows(min_row=2): # 通过列表推到获取表名中的数据 values = [cell.value for cell in row] if values == None: print(values) # 将数据添加到汇总表的末尾 ws.append(values) return wb# 获取指定目录下所有的Excel文件def get_all_xlsx_files(path): # 通过glob获取指定目录下所有Excel文件 xlsx_files = glob.glob(os.path.join(path, '*.xlsx')) # 按照文件名排序 sorted(xlsx_files, key=str.lower) return xlsx_files#删除空行def del_none_line(xlsx_files): df = pd.read_excel(xlsx_files) df1=df.dropna(how='all', thresh=None, subset=None, inplace=False) df1.to_excel('megred_form.xlsx',index=False)def main(): xlsx_files = get_all_xlsx_files(os.path.dirname(os.path.abspath(__file__))) wb = merge_xlsx_files(xlsx_files) wb.save('megred_form.xlsx') del_none_line('megred_form.xlsx')if __name__ == '__main__': main()
表格合并后执行结果
留言与评论(共有 0 条评论) “” |