全部产品

如何操作WPS的word

更新时间:2020-09-25 10:40:06

案例介绍


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

案例实现


案例一

1.案例相关SDK

create新建/save保存
  1. def start():
  2. #新建word文档
  3. doc = rpa.app.wps.word.create(visible = True)
  4. #保存
  5. doc.save(file = r'xxxxxxxx')

open打开/close关闭word操作
  1. def start():
  2. #打开excel
  3. doc = rpa.app.wps.word.open(file = r'xxxxx.docx',visible = False)
  4. #关闭word
  5. doc.close()

write写入/read读取word操作
  1. def start():
  2. #新建word文档
  3. doc = rpa.app.wps.word.create(visible = True)
  4. #写入内容
  5. doc.write('Hello world!',size=10,family='宋体',color=1)
  6. #读取内容
  7. txt=doc.read()
  8. #打印内容
  9. print(txt)
  10. #保存
  11. doc.save(file = r'xxxxxxxx')
  12. #color 对照表
  13. # wdByAuthor = -1,
  14. # wdAuto = 0,
  15. # wdNoHighlight = 0,
  16. # wdBlack = 1,
  17. # wdBlue = 2,
  18. # wdTurquoise = 3,
  19. # wdBrightGreen = 4,
  20. # wdPink = 5,
  21. # wdRed = 6,
  22. # wdYellow = 7,
  23. # wdWhite = 8,
  24. # wdDarkBlue = 9,
  25. # wdTeal = 10, // 0x0000000A
  26. # wdGreen = 11, // 0x0000000B
  27. # wdViolet = 12, // 0x0000000C
  28. # wdDarkRed = 13, // 0x0000000D
  29. # wdDarkYellow = 14, // 0x0000000E
  30. # wdGray50 = 15, // 0x0000000F
  31. # wdGray25 = 16, // 0x00000010

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

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

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

2.流程步骤

案例运行视频:wps

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

3.案例中源代码分享

  1. from rpa.core import *
  2. from rpa.utils import *
  3. import rpa4 as rpa # 使用V3引擎
  4. def start():
  5. # 在此处开始编写您的应用
  6. word = rpa.app.wps.word.create(visible=True)
  7. # 打开word
  8. sleep(2)
  9. word.write('Hello world!',size=10,family='宋体',color=1)
  10. # 写入Hello world!
  11. sleep(2)
  12. word.search(key='!',from_pos='start',index=1,relative='left')
  13. # 搜索 !
  14. sleep(2)
  15. word.write('后面是个感叹号:',size=10,family='宋体',color=1)
  16. sleep(2)
  17. word.replace(key='!',replacement='!!!')
  18. # 将 ! 替换成 !!!
  19. sleep(2)
  20. word.cursor_move(step_count=1,direction='left')
  21. #移动光标
  22. sleep(2)
  23. word.write('?',size=10,family='宋体',color=1)
  24. sleep(2)
  25. # 读取内容
  26. txt=word.read()
  27. sleep(2)
  28. # 打印内容
  29. print("读取到wps文档的内容为:{}".format(txt))

案例二

1.案例相关SDK

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

row_count获取表格行数/col_count获取表格列数
  1. def start():
  2. #打开word文档
  3. doc=rpa.app.wps.word.open(file = r'xxxxx.docx',visible = True)
  4. #获取文档中第一张表格
  5. tab1=doc.get_table(1)
  6. #获取表格行数
  7. rows=tab1.row_count()
  8. #获取表格列数
  9. cols=tab1.col_count()
  10. #打印行/列数
  11. print('行数为:'+str(rows)+'列数为:'+str(cols))
  12. #关闭文档
  13. doc.close()

read读取表格内容/write写入表格内容
  1. def start():
  2. #打开word文档
  3. doc=rpa.app.wps.word.create(file = r'xxxxx.docx',visible = True)
  4. #获取文档中第一张表格
  5. tab1=doc.get_table(1)
  6. #获取表格第一行第一列内容
  7. txt=tab1.read(row=1,col=1)
  8. #将获取到的内容写入到第四行第三列
  9. tab1.write(row=4,col=3,text=txt,size=10,family='宋体',color=2)
  10. #关闭文档
  11. doc.close()
  12. #color 对照表
  13. # wdByAuthor = -1,
  14. # wdAuto = 0,
  15. # wdNoHighlight = 0,
  16. # wdBlack = 1,
  17. # wdBlue = 2,
  18. # wdTurquoise = 3,
  19. # wdBrightGreen = 4,
  20. # wdPink = 5,
  21. # wdRed = 6,
  22. # wdYellow = 7,
  23. # wdWhite = 8,
  24. # wdDarkBlue = 9,
  25. # wdTeal = 10, // 0x0000000A
  26. # wdGreen = 11, // 0x0000000B
  27. # wdViolet = 12, // 0x0000000C
  28. # wdDarkRed = 13, // 0x0000000D
  29. # wdDarkYellow = 14, // 0x0000000E
  30. # wdGray50 = 15, // 0x0000000F
  31. # wdGray25 = 16, // 0x00000010

add_row新增表格行/add_col新增表格列
  1. def start():
  2. #打开word文档
  3. doc=rpa.app.wps.word.open(file = r'xxxxx.docx',visible = True)
  4. #获取文档中第一张表格
  5. tab1=doc.get_table(1)
  6. #新增一行
  7. tab1.add_row()
  8. #新增一列
  9. tab1.add_col()
  10. #关闭文档
  11. doc.close()

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

to_pdf插入图片
  1. def start():
  2. #打开word文档
  3. doc=rpa.app.wps.word.open(file = r'xxxxx.docx',visible = True)
  4. #将word转换成PDF
  5. doc.to_pdf(file=r'xxxx.pdf')
  6. #关闭文档
  7. doc.close()


2.流程步骤

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

  1. 案例操作步骤依次为:
  2. 第一步:从WPS中打开测试文档:word操作表格.docx
  3. 第二步:获取表格对象
  4. 第三步:分别向表格对象内第一行,第二行,第三行,输入内容:“RPA输入第”
  5. 第四步:将 "!" 替换成 "!!!"
  6. 第五步:光标向左移动一个字符距离
  7. 第六步:读取word中的内容,并打印输出到日志中显示

3.案例中源代码分享

  1. from rpa.core import *
  2. from rpa.utils import *
  3. import rpa4 as rpa # 使用V3引擎
  4. def start():
  5. # 打开一个有表格的word
  6. wd = rpa.app.wps.word.open(r"\\Mac\Home\Desktop\测试应用.docx",visible=True)
  7. # 根据索引获取表格
  8. tb = wd.get_table(0)
  9. # 写入指定 行 列 内容
  10. tb.write(1, 1, "RPA输入第一行")
  11. sleep(1)
  12. tb.write(2, 1, "RPA输入第二行")
  13. sleep(1)
  14. tb.write(3, 1, "RPA输入第三行")
  15. # 读取指定行列的内容
  16. data = tb.read(1,1)
  17. # 获取表格行数
  18. m_row = tb.row_count()
  19. # 获取表格列数
  20. m_col = tb.col_count()
  21. # 增加一行
  22. tb.add_row()
  23. # 增加一列
  24. tb.add_col()
  25. wd.save()