案例01 对一个工作簿中的所有工作表分别求和

  • 代码文件:对一个工作簿中的所有工作表分别求和.py – 数据文件:采购表.xlsx
import os
import xlwings as xw
import pandas as pd
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'D:\22\采购表.xlsx')
for i in workbook.sheets:
    values=i.range('A1').expand()
    data=values.options(pd.DataFrame).value
    sums=data['采购金额'].sum()
    
    column=values.value[0].index('采购金额')+1
    row=values.shape[0]
    i.range(row+1,column).value=sums
workbook.save()
workbook.close()
app.quit()

第10行代码中的index()是Python中列表对象的函数,常用于在列表中查找某个元素的索引位置。该函数的语法格式和常用参数含义如下。- 第11行代码中的shape是pandas模块中DataFrame对象的一个属性,它返回的是一个元组,其中有两个元素,分别代表DataFrame的行数和列数。

举一反三 对一个工作簿中的所有工作表分别求和并将求和结果写入固定单元格

  • 代码文件:对一个工作簿中的所有工作表分别求和并将求和结果写入固定单元格.py – 数据文件:采购表.xlsx
import os
import xlwings as xw
import pandas as pd
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'D:\22\采购表.xlsx')
for i in workbook.sheets:
    values=i.range('A1').expand().options(pd.DataFrame).value
    sums=values['采购金额'].sum()
    i.range('F1').value=sums   #将求和后的内容写到F1单元格中
workbook.save()
workbook.close()
app.quit()

案例02 批量统计工作簿的最大值和最小值

  • 代码文件:批量统计工作簿的最大值和最小值.py – 数据文件:产品销售统计表(文件夹)
import os
import xlwings as xw
import pandas as pd
app=xw.App(visible=True,add_book=False)
file_path=r'D:\\22\产品销售统计表'
file_list=os.listdir(file_path)
for j in file_list:
    if os.path.splitext(j)[1]=='.xlsx':
        file_paths=os.path.join(file_path,j)
        workbook=app.books.open(file_paths)
        for i in workbook.sheets:
            values=i.range('A1').expand().options(pd.DataFrame).value
            max0=values['销售利润'].max()
            min0=values['销售利润'].min()
            i.range('I1').value='最大销售利润'
            i.range('J1').value=max0
            i.range('I2').value='最小销售利润'
            i.range('J2').value=min0
            i.autofit()
        workbook.save()
        workbook.close()
app.quit()    

举一反三 批量统计一个工作簿中所有工作表的最大值和最小值

  • 代码文件:批量统计一个工作簿中所有工作表的最大值和最小值.py- 数据文件:产品销售统计表.xlsx
import xlwings as xw
import pandas as pd
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'CD:\22\产品销售统计表.xlsx')
for i in workbook.sheets:
    values=i.range('A1').expand().options(pd.DataFrame).value
    max0=values['销售利润'].max()
    min0=values['销售利润'].min()
    i.range('I3').value='最大销售利润'
    i.range('J3').value=max0
    i.range('I4').value='最小销售利润'
    i.range('J4').value=min0
    i.autofit()
workbook.save()
workbook.close()
app.quit()