一、excel介绍

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

二、视频专区

1、视频案例

业务场景:抓取天猫商品信息数据,并保存到excel中

案例流程:打开excel-设置字段-打开天猫-搜索目标商品信息-抓取数据-填充到excel中



2、视频案例中源代码分享


def start():
     '''
    爬取淘宝商品信息sdk
    商品名称
    '''
    #打开excel表格
    xls = rpa.excel.open(file = r'\\Mac\Home\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.chrome.create('https://www.tmall.com/?from=tianmao.com')
    #天猫输入框输入-搜索男装t恤短袖
    var = '男装t恤短袖'
    page.input("天猫 - 搜索输入框",value = var)
    #点击搜索
    page.click("天猫—搜索")
    page.wait(element = '男装t恤短袖')
    flag = 0
    count_data = 1
    while True:
        if flag == 8:
            break
        else:
            #获取所有男装-价格-名称-成交笔数#
            count = 2
            for i in range(1,61):
                var = page.text("男装衣服名称",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("男装衣服价格")
                sheet.write(range = 'C'+str(count+count_data),value = var)
                count_data+=1

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

    

    xls.save(file = r'\\Mac\Home\Desktop\淘宝男装.xlsx')


三、代码编写

 1、create新建


def start():
    #新建excel表
    xls = rpa.excel.create(visible = True)
    sheet = xls.get_sheet()
    #向B1单元格写入12345
    data = sheet.write(range = 'B1',value = '12345')
    #保存
    xls.save(file = r'xxxxxxxx')



2、打开excel操作

 

def start():
    #打开excel
    xls = rpa.excel.open(file = r'xxxxx.xlsx',visible = False)
    sheet = xls.get_sheet()


案例:

execl 基本操作002.PNG


3、捕获已打开的excel操作


def start():
    #捕获已经打开的excel表格
    xls = rpa.excel.catch(name = r'xxxxxx.xlsx',mode = 'filepath')
    sheet = xls.get_sheet()
    #向B2单元格写入12345
    data = sheet.write(range = 'B2',value = '12345')
    #保存
    xls.save(file = 'xxxx')


4、复制、粘贴excel 操作


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #复制B1内单元格数据
    data = sheet.copy(range = 'B1')
    #向B2单元格内粘贴数据
    #sheet.paste(col = 'B',row = '2')
    #保存
    xls.save(file = 'xxxx')




5、复制、粘贴范围内容excel 操作


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #复制B1B2内单元格数据
    data = sheet.copy(range = 'B1:B2')
    #向B3B4单元格内粘贴数据
    sheet.paste_range(range = 'B3:B4')
    #保存
    xls.save(file = 'xxxx')


6、获得指定行数的sheet行数


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #获取sheet的行数
    data = sheet.row_count()
    print(data)


案例:

excel 006.PNG

excel 006_001.PNG

7、获得指定行数的sheet列数 


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #获得sheet的列数
    data = sheet.col_count()
    print(data)


案例:

  

excel 007.PNG

excel 007_001.PNG

8、fifter 对列的基本操作


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #filter 对列进行晒选,筛选后删除
    sheet.filter(col = 'B',array = [1],delete = True)
    #上述col = ‘B’,array = [1] 表示 B列中筛选值等于1的行 ,delete = True 删除
    #保存
    xls.save(file = r'xxxxxxxx')



9、移除筛选基本操作


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #filter 对列进行筛选
    sheet.filter(col = 'B',array = [1],delete = False)
    #移除筛选
    sheet.remove_filter()
    #保存
    xls.save(file = r'xxxxxxxx')


10、multi_filter对多列进行筛选


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #对多列进行筛选range 不填写 默认为整个文件
    #筛选B1
    sheet.multi_filter(filters_val = {'B':['1']},delete = True)
    #保存
    xls.save(file = r'xxxxxxxx')



11、运行宏文件


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet('sheet3')
    #运行宏
    sheet.run_macro(file = r'xxxxx.xlsm',macro_name = 'xxxxx')


12、merge_cell合并单元格操作


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #合并单元格 range
    sheet.merge_cell(range = 'A1:B2',each_row = True)
    


案例:

excel 009.PNG

当each_row = False 


excel 010.PNG


13、insert基础使用方法


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #插入功能 插入A1:B2 insertDirection 移动方向
    sheet.insert(range = 'A1:B2',insertDirection = '下移')


案例:

excel 011.PNG


14、delete删除功能


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #删除功能 删除A1:B2 
    sheet.delete(range = 'A1:B2')
    #保存
    xls.save(file = r'xxxxxxxx')


15、remove_duplicate 列去重功能


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'\\Mac\Home\Desktop\抽奖数据.xlsx',visible = False)
    sheet = xls.get_sheet('sheet3')
    #列去重
    sheet.remove_duplicate(range = 'A1:A4',cols = ['A'] )
    xls.save(file = r'\\Mac\Home\Desktop\抽奖数据.xlsx')


16、创建透视表


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    pivot_settings = rpa.excel.PivotTableSettings('MyPivotTable')
    pivot_settings.columns['购买者'] = {}
    pivot_settings.filters['日期'] = {}
    pivot_settings.rows['类型'] = {}
    pivot_settings.values['金额'] = {}
    


案例:

excel 013_001.PNG

17、刷新透视表


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet('xxxx')
    #刷新数据透视表
    sheet.refresh_pivottable(index = 1)
    


案例:

excel 014.PNG

18、获取透视表筛选列的所有项


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet('xxxx')
    data = sheet.get_all_pivot_field_items(index = 1,name = 'xxx')
    print(data)
    
    
    


案例:

图片001.png

19、选择/取消选择一组透视表筛选项


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet('xxxx')
    #选择/取消 选择一组透视表筛选项
    sheet.select_pivot_field_items(name = 'xxxx',select = False ,array = ['xx'])

案例:

执行前


excel 016.PNG


          执行后(False是取消,Ture 是选择)


excel 016__001.PNG


20、find 查询内容 返回一个二维数组


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #find 查询内容 返回一个二维数组
    data = sheet.find(text = 'xxx',range = 'A1:B2')
    print(data)
    #range = ‘’ 参数填写查询范围


案例:

excel 017.PNG



21、向指定位置插入图片 file 插入图片路径


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #向指定位置插入图片 file 插入图片路径
    sheet.add_picture(file = r'xxxx',col = 'xx',row = 'xx',width = 'xx',height = 'xx')


案例:


excel 019.PNG


22 、获得指定行高度


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #获得指定行高度
    var = sheet.get_row_height(row = '1')
    print(var)


案例:写的第一行  获得第一行高度为43.5


excel 020.PNG


23、设置指定行高度 


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #设置指定行高度 第一行 高度 20
    sheet.set_row_height(row = '1',height = '20')


24、获得指定列宽度


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #获得指定列表宽度
    var = sheet.get_col_width(col = 'A')
    print(var)

案例:

A列

excel 023.PNG



25、设置\获取指定范围的公式


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'\\Mac\Home\Desktop\抽奖数据.xlsx',visible = False)
    sheet = xls.get_sheet('sheet3')
    #设置指定范围的公式
    sheet.set_formula(range = 'A3',formula = '=SUM(A1:A2)')
    #获取控件公式
    var = sheet.get_formula(range = 'A3')
    print(var)


案例:

excel 025.PNG

26、获取指定范围样式


def start():
    #打开的excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #获取指定范围样式  fontname 字体 bgcolor 背景颜色 fontcolor字体颜色 fontsize 文字大小
    data = sheet.get_style(range = 'xx',style = 'fontsize')
    print(data)


27、设置指定范围样式


def start():
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #设置指定范围样式   设置字体大小
    data = sheet.set_style(range = 'xxx',style = 'fontsize',value = '20')
    #设置指定范围样式   设置字体颜色
    #如果style为fontcolor/bgcolor,则value可以为'#FFFFFF'或者'255,255,255
` # format` : 颜色类型,如果style为fontcolor/bgcolor,需设置color_format为'HEX'或者'RGB'
    data = sheet.set_style(range = 'xxx',style = 'fontcolor',value = '#FFFFFF',color_format = 'HEX')


28、获取指定范围的注释color_color_


def start():
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #获取指定范围的注释
    var = sheet.get_comment(range = 'xxxx')
    print(var)


29、往指定范围插入注释


def start():
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #往指定范围插入注释  comment 插入内容
    sheet.set_comment(range = 'xxx',comment = 'hello_world')
    xls.save(file = r'xxxxxxxx.xlsx')


30、replace 替换


def start()
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #替换的内容   text 要替换的内容 replacement 替换成的内容 
    #range查找范围(如果为空则查找整个Sheet) match_case 是否区分大小写<bool>
    sheet.replace(text = '123',replacement = 'hello_world',range = 'A1:C5',\
    match_case = False)
    xls.save(file = r'\\Mac\Home\Desktop\抽奖数据.xlsx')


31、to_pdf转换成pdf


def start()
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet()
    #转换成pdf
    sheet.to_pdf(file =r'\\Mac\Home\Desktop\抽奖数据.pdf')


32、activate激活当前sheet


def start():
    #打开excel表格
    xls = rpa.excel.open(file = r'xxxx.xlsx',visible = False)
    sheet = xls.get_sheet('sheet2')
    sheet.activate()