如何操作Microsoft的word

案例介绍

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

案例实现

案例一

1.案例相关SDK

create新建/save保存

def start():
    #新建word文档
    doc = rpa.app.microsoft.word.create(visible = True)
    #保存
    doc.save(file = r'xxxxxxxx')

open打开/close关闭word操作

def start():
    #打开excel
    doc = rpa.app.microsoft.word.open(file = r'xxxxx.docx',visible = False)
    #关闭word
    doc.close()

write写入/read读取word操作

def start():
    #新建word文档
    doc = rpa.app.microsoft.word.create(visible = True)
    #写入内容
    doc.write('Hello world!',size=10,family='宋体',color=1)
    #读取内容
    txt=doc.read()
    #打印内容
    print(txt)
    #保存
    doc.save(file = r'xxxxxxxx')

    #color 对照表
    # wdByAuthor = -1,
    # wdAuto = 0,
    # wdNoHighlight = 0,
    # wdBlack = 1,
    # wdBlue = 2,
    # wdTurquoise = 3,
    # wdBrightGreen = 4,
    # wdPink = 5,
    # wdRed = 6,
    # wdYellow = 7,
    # wdWhite = 8,
    # wdDarkBlue = 9,
    # wdTeal = 10, // 0x0000000A
    # wdGreen = 11, // 0x0000000B
    # wdViolet = 12, // 0x0000000C
    # wdDarkRed = 13, // 0x0000000D
    # wdDarkYellow = 14, // 0x0000000E
    # wdGray50 = 15, // 0x0000000F
    # wdGray25 = 16, // 0x00000010

search搜索

def start():
    #新建word文档
    doc = rpa.app.microsoft.word.create(visible = True)
    #写入内容
    doc.write('Hello world!',size=10,family='宋体',color=1)
    #从头开始搜索第二个'o'
    doc.search(key='o',from_pos='start',index=2,relative='left')
    #保存
    doc.save(file = r'xxxxxxxx')

replace替换

def start():
    #新建word文档
    doc = rpa.app.microsoft.word.create(visible = True)
    #写入内容
    doc.write('Hello world!',size=10,family='宋体',color=1)
    #将'!'替换成'!!!'
    doc.replace(key='!',replacement='!!!')
    #保存
    doc.save(file = r'xxxxxxxx')

cursor_move移动光标

def start():
    #新建word文档
    doc = rpa.app.microsoft.word.create(visible = True)
    #写入内容
    doc.write('Hello world!',size=10,family='宋体',color=1)
    #将光标向左移动一格
    doc.cursor_move(step_count=1,direction='left')
    #再光标处写入'?'
    doc.write('?',size=10,family='宋体',color=1)
    #保存
    doc.save(file = r'xxxxxxxx')

2.流程步骤

案例运行视频:WPS案例1效果演示

案例操作步骤依次为:
第一步:新建一个Word文档
第二步:向word文档中写入"Hello world!"
第三步:搜索光标为 "!" 的字符串,并在其左侧写入 "后面是个感叹号:"
第四步:将 "!"  替换成 "!!!"
第五步:光标向左移动一个字符距离
第六步:读取word中的内容,并打印输出到日志中显示

3.案例中源代码分享

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

def start():
    # 在此处开始编写您的应用
    word = rpa.app.microsoft.word.create(visible=True)
    # 打开word
    sleep(2)
    word.write('Hello world!',size=10,family='宋体',color=1)
    # 写入Hello world!
    sleep(2)
    word.search(key='!',from_pos='start',index=1,relative='left')
    # 搜索 !
    sleep(2)
    word.write('后面是个感叹号:',size=10,family='宋体',color=1)
    sleep(2)
    word.replace(key='!',replacement='!!!')
    # 将 ! 替换成 !!!
    sleep(2)
    word.cursor_move(step_count=1,direction='left')
    #移动光标
    sleep(2)
    word.write('?',size=10,family='宋体',color=1)
    sleep(2)
    # 读取内容
    txt=word.read()
    sleep(2)
    # 打印内容
    print("读取到Wrod文档的内容为:{}".format(txt))

案例二

1.案例相关SDK

get_table获取表格

def start():
    #打开word文档
    doc=rpa.app.microsoft.word.open(file = r'xxxxx.docx',visible = True)
    #获取文档中第一张表格
    tab1=doc.get_table(1)
    #关闭文档
    doc.close()

row_count获取表格行数/col_count获取表格列数

def start():
    #打开word文档
    doc=rpa.app.microsoft.word.open(file = r'xxxxx.docx',visible = True)
    #获取文档中第一张表格
    tab1=doc.get_table(1)
    #获取表格行数
    rows=tab1.row_count()
    #获取表格列数
    cols=tab1.col_count()
    #打印行/列数
    print('行数为:'+str(rows)+'列数为:'+str(cols))
    #关闭文档
    doc.close()

read读取表格内容/write写入表格内容

def start():
    #打开word文档
    doc=rpa.app.microsoft.word.create(file = r'xxxxx.docx',visible = True)
    #获取文档中第一张表格
    tab1=doc.get_table(1)
    #获取表格第一行第一列内容
    txt=tab1.read(row=1,col=1)
    #将获取到的内容写入到第四行第三列
    tab1.write(row=4,col=3,text=txt,size=10,family='宋体',color=2)
    #关闭文档
    doc.close()

    #color 对照表
    # wdByAuthor = -1,
    # wdAuto = 0,
    # wdNoHighlight = 0,
    # wdBlack = 1,
    # wdBlue = 2,
    # wdTurquoise = 3,
    # wdBrightGreen = 4,
    # wdPink = 5,
    # wdRed = 6,
    # wdYellow = 7,
    # wdWhite = 8,
    # wdDarkBlue = 9,
    # wdTeal = 10, // 0x0000000A
    # wdGreen = 11, // 0x0000000B
    # wdViolet = 12, // 0x0000000C
    # wdDarkRed = 13, // 0x0000000D
    # wdDarkYellow = 14, // 0x0000000E
    # wdGray50 = 15, // 0x0000000F
    # wdGray25 = 16, // 0x00000010

add_row新增表格行/add_col新增表格列

def start():
    #打开word文档
    doc=rpa.app.microsoft.word.open(file = r'xxxxx.docx',visible = True)
    #获取文档中第一张表格
    tab1=doc.get_table(1)
    #新增一行
    tab1.add_row()
    #新增一列
    tab1.add_col()
    #关闭文档
    doc.close()

add_picture插入图片

def start():
    #打开word文档
    doc=rrpa.app.wps.word.open(file = r'xxxxx.docx',visible = True)
    #在文档中第一张图片-会插入在光标处
    doc.add_picture(file=r'xxxx.jpg')
    #关闭文档
    doc.close()

to_pdf插入图片

def start():
    #打开word文档
    doc=rpa.app.microsoft.word.open(file = r'xxxxx.docx',visible = True)
    #将word转换成PDF
    doc.to_pdf(file=r'xxxx.pdf')
    #关闭文档
    doc.close()

2.流程步骤

案例操作附件:测试应用案例运行视频:rpa操作表格示例

案例操作步骤依次为:
第一步:打开测试文档:word操作表格.docx
第二步:获取表格对象
第三步:分别向表格对象内第一行,第二行,第三行,输入内容:“RPA输入第”
第四步:读取指定行列的内容 
第五步:获取表格行数、列数
第六步:增加一行、一列,然后保存

3.案例中源代码分享

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

def start():
    # 打开一个有表格的word
    wd = rpa.app.microsoft.word.open(r"\\Mac\Home\Desktop\测试应用.docx",visible=True)
    # 根据索引获取表格
    tb = wd.get_table(0)
    # 写入指定 行 列 内容
    tb.write(1, 1, "RPA输入第一行")
    sleep(1)
    tb.write(2, 1, "RPA输入第二行")
    sleep(1)
    tb.write(3, 1, "RPA输入第三行")
    # 读取指定行列的内容 
    data = tb.read(1,1)
    # 获取表格行数
    m_row = tb.row_count()
    # 获取表格列数
    m_col = tb.col_count()
    # 增加一行
    tb.add_row()
    # 增加一列
    tb.add_col()
    wd.save()