C6.04 筛选一个工作簿中的所有工作表数据

Purpose:
下图所示, 工作簿按月份存放在不同工作表中的物品采购明细数据
更改为按物品名称存放在不同工作表中.
在这里插入图片描述

import xlwings as xw
import pandas as pd

app = xw.App(visible=True, add_book=False)
workbook = app.books.open(r'd:\python_file\采购表.xlsx')
worksheet = workbook.sheets
table = pd.DataFrame()

for i, j in enumerate(worksheet):
    values = j.range('a1').options(pd.DataFrame, header=1, index=False, expand='table').value
    data = values.reindex(columns=['采购物品','采购日期','采购数量','采购金额'])    # 调整列的顺序,  将"采购物品"移到第1列
    table = table.append(data, ignore_index=True)
table = table.groupby('采购物品')
new_workbook = xw.books.add()    # 新建一个工作簿
for idx, group in table:
    new_worksheet = new_workbook.sheets.add(idx)
    new_worksheet['a1'].options(index=False).value = group
    last_cell = new_worksheet['a1'].expand('table').last_cell
    last_row = last_cell.row      # get data area last row number
    last_column = last_cell.column   # get data area last column number
    last_column_letter = chr(64+last_column)   # change column number as column letter
    sum_cell_name = '{}{}'.format(last_column_letter, last_row+1)   # save sum cell
    sum_last_row_name = '{}{}'.format(last_column_letter, last_row)
    formula = '=sum({}2:{})'.format(last_column_letter, sum_last_row_name)
    new_worksheet[sum_cell_name].formula = formula
    new_worksheet.autofit()
new_workbook.save('采购分类表.xlsx')
workbook.close()
app.quit()




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值