本期,我们利用xlwings对Excel进行分类汇总,例如将下面一个按照月销售的统计表变成一个按照商品类别进行统计的表。即:
变为:
直接上代码:
import xlwings as xwimport pandas as pdapp = xw.App(visible=False, add_book=False)wb = app.books.open('sale.xlsx')wsh = wb.sheetstable = pd.DataFrame()for i, j in enumerate(wsh): data = j.range('A1').options(pd.DataFrame, header=1, index=False, expand='table').value data = data.reindex(columns=['产品名称', '成本价(元/个)', '销售价(元/个)', '销售数量(个)', '销售收入(元)']) table = table.append(data, ignore_index=True)#table按照产品名称进行排序table = table.groupby('产品名称')new_wb = app.books.add()for idx, group in table: new_wsh = new_wb.sheets.add(idx) new_wsh['A1'].options(index=False).value = group new_wsh.autofit()new_wb.save('new_sale.xlsx')app.quit()
运行一下试试吧?其实,编程思路就是把原表中所有的分sheet合并在一起,然后再进行拆分