首页
书签
电子手办柜
统计
Search
1
《绿皮书》《Green Book》
709 阅读
2
如何用Siri唤醒电脑(by服务器)
528 阅读
3
欢迎使用 Typecho
413 阅读
4
斯人若彩虹,遇上方知有。
357 阅读
5
Visual Studio Code不受支持
328 阅读
杂谈
代码相关
日记
soul
清单
登录
Search
标签搜索
#python
#docker
#Ubuntu
#Excel
小冷柠's Blog
累计撰写
76
篇文章
累计收到
0
条评论
首页
栏目
杂谈
代码相关
日记
soul
清单
页面
书签
电子手办柜
统计
搜索到
1
篇与
的结果
2024-03-11
多个表格在不同下文件夹下面汇总到同一个表不同工作簿的方法
""" #主文件夹 #sheet1name #name1.xlsx #name2.xlsx #name3.xlsx #sheet2name #name1.xlsx #name2.xlsx #name3.xlsx #workbook sheet1name sheet2name 这个工具的作用就是 将和sheetname名字相同的1个文件夹中的所有的excel文件合并成一个pandas件,并将数据写入到对应的sheet中。 """ import os import xlwings as xw import pandas as pd path = f"{os.path.split(os.path.realpath(__file__))[0]}/" def readsheet_to_sheet(workbook, sheetname): '''读取sheetname对应的文件夹中的所有excel文件,并将数据合并到一个pandas数据框中''' folder_path = path + sheetname all_df = pd.DataFrame() for filename in os.listdir(folder_path): if filename.endswith('.xlsx'): file_path = os.path.join(folder_path, filename) print(f"Reading sheets from {file_path}:") with xw.Book(file_path) as wb: for sheet in wb.sheets: # 读取工作表数据并跳过第一行 df = sheet.used_range.options(pd.DataFrame, index=False, header=1).value # 打印工作表名称和数据 print(f"\nSheet: {sheet.name}") print(df) all_df = pd.concat([all_df,df],ignore_index=True) workbook.sheets[sheetname].range("A2").options(header = False , index = False).value = all_df def main(book_name): ''' 打开excel文件''' wb1 = xw.books(book_name) ########## #这里做了切片, 因为我前面2个工作表是不需要收集的 shop_list = [x for x in wb1.sheet_names][3:] for i in shop_list: readsheet_to_sheet(workbook=wb1,sheetname=i) if __name__ == "__main__": main("file_name.xlsx") 5月7日更新""" #主文件夹 #sheet1name #name1.xlsx #name2.xlsx #name3.xlsx #sheet2name #name1.xlsx #name2.xlsx #name3.xlsx #workbook sheet1name sheet2name 这个工具的作用就是 将和sheetname名字相同的1个文件夹中的所有的excel文件合并成一个pandas件,并将数据写入到对应的sheet中。 """ import os import pandas as pd import xlwings as xw path = f"{os.path.split(os.path.realpath(__file__))[0]}/" def readsheet_to_sheet(sheetname): """读取sheetname对应的文件夹中的所有excel文件,并将数据合并到一个pandas数据框中""" folder_path = path + sheetname all_df = pd.DataFrame() for filename in os.listdir(folder_path): if filename.endswith(".csv"): file_path = os.path.join(folder_path, filename) print(f"Reading sheets from {file_path}:") with xw.Book(file_path) as wb: for sheet in wb.sheets: # 读取工作表数据并跳过第一行 df = sheet.used_range.options( pd.DataFrame, index=False, header=1 ).value # 打印工作表名称和数据 print(f"\nSheet: {sheet.name}") all_df = pd.concat([all_df, df], ignore_index=True) all_df["店铺名称"] = sheetname # all_df["月份"] = pd.to_datetime(df["订单下单时间"]) return all_df # workbook.sheets[sheetname].range("A2").options(header = False , index = False).value = all_df def main(): """打开excel文件""" wb = xw.books.active shop_list = [ "JD-技嘉旗舰店", "JD-技嘉DIY旗舰店", "JD-AMD旗舰店", "JD-AORUS旗舰店", "JD-嘉志硕", "JD-图迈", "JD-优卡", "JD-XPG旗舰店", "JD-七彩虹旗舰店", ] df = pd.DataFrame() for i in shop_list: df = pd.concat([df, readsheet_to_sheet(i)], ignore_index=True) print(df) wb.sheets["综合优惠信息"].tables["综合优惠信息"].update(df, index=False) if __name__ == "__main__": main()
2024年03月11日
66 阅读
0 评论
0 点赞