如何操作Microsoft的Excel

案例介绍

Excel模块是用来向用户提供一系列操作Excel的SDK,让用户通过简单的参数和方法调用来实现一些复杂的操作。要使用Excel模块,需要使用 rpa.app.microsoft.excel 进行操作。

案例实现

1、案例一

业务场景:抓取天猫商品信息数据,并保存到Excel中。案例流程:打开Excel-设置字段-打开天猫-搜索目标商品信息-抓取数据-填充到Excel中。

1).示例代码(文件地址需换成自己本地):

from rpa.core import *
from rpa.utils import *
import rpa4 as rpa # 使用V3引擎

def start():
    # 在此处开始编写您的应用
    '''
    爬取淘宝商品信息sdk
    商品名称
    '''
    #打开Excel表格
    xls = rpa.app.microsoft.excel.open(file = r'C:\Users\派大星\Desktop\淘宝男装.xlsx',visible = True)
    sheet = xls.get_sheet()
    #激活当前sheet
    sheet.activate()
    #设置A、B、C列列宽
    sheet.set_col_width(col = 'A',width = '6')
    sheet.set_col_width(col = 'B',width = '65')
    sheet.set_col_width(col = 'C',width = '7')
    #向A1、B1、C1分别写入序号、男装名称、价格
    var = '序号'
    sheet.write(range ='A1',value = var)
    var = '商品名称'
    sheet.write(range ='B1',value = var)
    var = '价格'
    sheet.write(range ='C1',value = var)
    #打开chrome 网页
    page = rpa.app.chrome.create('https://www.tmall.com/?from=tianmao.com')
    #天猫输入框输入-搜索男装t恤短袖
    var = '男装t恤短袖'

    page.input_text("天猫 - 搜索输入框",value = var)
    #点击搜索
    page.click("天猫—搜索")

    flag = 0
    count_data = 1
    while True:
        if flag == 4:
            break
        else:
            #获取所有男装-价格-名称
            # 由于搜索商品新打开一个页签页面,需要重新赋值新页签的对象,
            page = rpa.app.chrome.catch('男装t恤短袖-天猫', mode='title', pattern='contain')
            count = 1
            sleep(3)
            for i in range(1,61):
                var = page.text(element = "男装衣服名称",index = i)
                sheet.write(range = 'B'+str(count+count_data),value = var)
                sheet.write(range = 'A'+str(count+count_data),value = str(count_data))
                var = page.text(element = "男装衣服价格",index = i)
                sheet.write(range = 'C'+str(count+count_data),value = var)
                count_data+=1

            flag += 1
            page.click("男装t恤短袖—下一页")


    sleep(3)
    xls.save()

2、案例二

业务场景:操作Excel数据透视表。案例流程:创建透视表-刷新透视表-获取透视表筛选列的所有项-选择/取消选择一组透视表筛选项。

1).设置以及创建透视表

创建前的Excel表格展示:excel1创建透视表的透视表格展示:2代码示例(文件地址需换成自己本地):

xls = rpa.app.microsoft.excel.open(r'C:\Users\XXXX\Desktop\数据透视表.xlsx',visible = True)
sheet = xls.get_sheet('Sheet1')
pivot_settings = rpa.app.microsoft.excel.PivotTableSettings('MyPivotTable')
pivot_settings.columns['购买者'] = {} # 添加"列标签"
pivot_settings.filters['日期'] = {} # 添加"筛选字段"
pivot_settings.rows['类型'] = {} # 添加"行标签"
pivot_settings.values['金额'] = {"Function": "xlSum"} # 添加"数值"
sheet.create_pivot_table('Sheet1', 'A1:D8', '透视表', 'A1', pivot_settings)

sleep(3)
xls.save()

2).刷新透视表

刷新前透视表前展示:111刷新透视表后展示:22示例代码(文件地址需换成自己本地):

xls = rpa.app.microsoft.excel.open(r'C:\Users\XXX\Desktop\数据透视表.xlsx',visible = True)
sheet1 = xls.get_sheet("Sheet1")
sheet1.write("D3", "3434") # 修改原数据的值
sheet2 = xls.get_sheet('透视表')
sheet2.refresh_pivot_table(index=1)

sleep(5)
xls.save()

3).获取透视表筛选列的所有项

示例代码(文件地址需换成自己本地):

xls = rpa.app.microsoft.excel.open(r'C:\Users\XXX\Desktop\数据透视表.xlsx',visible = True)
sheet = xls.get_sheet('透视表')
items = sheet.get_all_pivot_field_items('购买者')

print(items)

输出内容:['爸爸', '百岁', '妈妈']

4).选择/取消选择一组透视表筛选项

操作透视表之前展示:33进行操作后透视表展示:44示例代码(文件地址需换成自己本地):

xls = rpa.app.microsoft.excel.open(r'C:\Users\XXX\Desktop\数据透视表.xlsx',visible = True)
sheet = xls.get_sheet('透视表')
sheet.select_pivot_field_items('购买者', ["爸爸"], select=False)
sleep(1)
sheet.select_pivot_field_items('类型', ["门票", "食品", "书籍", "音乐"],select = True)
sleep(1)
xls.save()