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()

本文档展示了如何使用Python库xlwings和pandas,将工作簿中按月份组织的物品采购明细数据整理为按物品名称分别存储在不同工作表的技术过程。通过循环遍历和数据重组,实现了数据的重新组织和汇总。

863

被折叠的 条评论
为什么被折叠?



