全部产品
云市场

wps

更新时间:2019-09-18 15:39:30

目录

wps

要使用wps模块,需要import wps

wps模块是用来向用户提供一系列操作Word的SDK,让用户通过简单的参数和方法调用来实现一些复杂的操作。

word模块

open

open(file, visible=False,dispatch=’wps’)

  • file : 文件路径
  • visible : 是否可见
  • dispatch : 使用office或wps打开

该方法会启动一个Word进程并打开文档,可以通过visible来控制这个Word进程是可见。
返回一个类型的对象。

  1. doc = wps.word.open(r'C:\xxx.docx',dispatch='wps')

create

create(visible=False,dispatch=’wps’)

  • visible : 是否可见
  • dispatch : 使用office或wps打开
  • 该方法会启动一个Word进程并新建一个文档,可以通过visible来控制这个Word进程是可见。
  • 返回一个类型的对象。
  1. doc = wps.word.create(visible=True,dispatch='wps')

Class: Word

Word : 负责为用户提供Word相关的一些操作。

Word实例不再被使用时,建议close()它,否则会不断产生残留的Word进程。

save

save(self,*,file=None)

  • file : 另存为文件路径

该方法用于保存对Word的修改,如果是另存为或者新创建的Word,需要传入文件路径。

  1. doc = wps.word.create(visible=False,dispatch="wps")
  2. doc.save(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")

close

close(self)

关闭Word文档并释放进程。

  1. doc.close()

write

write(self,text,*, size=8, family=”微软雅黑”, color=1)

  • text : 要输入的内容
  • size : 字体大小
  • family: 字体种类
  • color : 字体颜色编号

向Word内写入内容。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc",visible=True)
  2. doc.write("11222",size=10,family="微软雅黑"color=5)

read

read(self)

读取word内容。
返回读取到的内容。

  1. print(doc.read())

search(self,key, from_pos=”start”, index=1, relative=”left”)

  • key : 查找的关键字
  • from_pos : 从哪开始查找 开头或者当前 只能填start|current
  • index: 第几个匹配 默认1
  • relative:光标在关键字左边还是右边 只能填left|right

在可视化情况下,可以看到查找关键字并移动光标到关键字的左边或者右边。

  1. doc.search("xxx")

cursor_move

cursor_move(self,step_count, direction=”right”)

  • step_count : 移动步数
  • direction : 移动方向 上下左右 只能填 left|right|top|down

移动光标,朝某一个方向移动一定的步数,默认向右。

  1. doc.cursor_move(3)

add_picture

add_picture(self,file)

  • file : 图片路径

向Word中插入图片,处理完调用save(self)保存。

  1. doc.add_picture(r"C:\aaa.jpg")
  2. doc.save()
  3. doc.close()

to_pdf

to_pdf(self,file)

  • file : 保存的pdf路径

将Word转成pdf文件。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. doc.to_pdf(r"C:\Users\wb-yzm488174\Desktop\test.pdf")
  3. doc.close()

get_table

get_table(self,index)

  • index : 表格索引

根据索引获取表格,索引从0开始。
返回对象。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. table = doc.get_table(0)
  3. doc.save()
  4. doc.close()

Class: Table

Table : 负责为用户提供Word中表格相关的一些操作。

row_count

row_count(self)

获取表格的行数,返回值为行数。

  1. print(wps.word.Table.row_count())

col_count

col_count(self)

获取表格的列数,返回值为列数。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. table = doc.get_table(0)
  3. print(table.row_count())
  4. doc.close()

add_row

add_row(self)

增加一个空行。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. table = doc.get_table(0)
  3. table.add_row()
  4. doc.close()

add_col

add_col(self)

增加一个空列。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. table = doc.get_table(0)
  3. table.add_row()
  4. doc.close()

read

read(self, row, col)

  • row : 行的索引
  • col : 列的索引

获取指定单元格内容。
返回读取到的内容。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. table = doc.get_table(0)
  3. print(table.read(1,1))
  4. doc.close()

write

write(row, col, text, *,size=8, family=”微软雅黑”, color=1)

  • row : 行的索引
  • col : 列的索引
  • text : 要输入的内容
  • size : 字体大小
  • family: 字体种类
  • color : 字体颜色编号

向指定单元格写入内容。

  1. doc = wps.word.open(file=r"C:\Users\wb-yzm488174\Desktop\wps测1.doc")
  2. table = doc.get_table(0)
  3. table.write(1,1,"333")
  4. doc.save()
  5. doc.close()

excel模块

open

open(file,*, visible=False, readonly=False, password=None, write_password=None,dispatch=’wps’)

  • file : 文件路径
  • visible : 是否可见
  • readonly : 只读
  • password : 文件密码
  • write_password : 设置密码
  • dispatch : 使用office或wps打开

该方法会启动一个Excel进程并打开文档,可以通过visible来控制这个Excel进程是可见。
返回一个类型的对象。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")

create

create(*,visible=False,,dispatch=’wps’)

  • visible : 是否可见
  • dispatch : 使用office或wps打开

该方法会启动一个Excel进程并新建一个文档,可以通过visible来控制这个Excel进程是可见。
返回一个类型的对象。

  1. wb = wps.excel.create(dispatch='wps')
  2. wb.save(file=r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  3. wb.close()

Class: Excel

Excel : 负责为用户提供Excel相关的一些操作。

Excel实例不再被使用时,建议close()它,否则会不断产生残留的Excel进程。

save

save(self, *, file=None)

  • file : 另存为文件路径

该方法用于保存对Excel的修改,如果是另存为或者新创建的Excel,需要传入文件路径。

  1. wb.save()

close

close(self, *, save=True)

  • save : 默认保存

关闭Excel文档并释放进程。

  1. wb.close()

sheets

sheets(self)

返回该Excel内所有sheet的集合,这是一个实例的集合。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. wb.sheets()

get_sheet

get_sheet(self,sheet_name=None)

  • sheet_name : sheet名称

根据sheet的名称sheet_name获取指定sheet,如果不传则返回当前激活的sheet。
返回一个的实例

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet("sheet1")

add_sheet

add_sheet(self,sheet_name, location, *,relative=”before”)

  • sheet_name : sheet名称
  • location : 定位插入位置的sheet的名称
  • relative : 插在location的sheet的前还是后 输入before|after

location的sheet前或者后插入新的sheet。
返回一个的实例

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. wb.add_sheet("sheetxxx","sheet1")
  3. wb.save()
  4. wb.close()

remove_sheet

remove_sheet(self, sheet_name)

  • sheet_name : sheet名称

根据sheet的名称sheet_name删除指定的sheet。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. wb.remove_sheet("sheet1")
  3. wb.save()
  4. wb.close()

rename_sheet

rename_sheet(self, old_sheet_name, new_sheet_name)

  • old_sheet_name : 原sheet名称
  • new_sheet_name : 新sheet名称

重命名sheet。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. wb.rename_sheet("sheet1","sheet4")
  3. wb.save()
  4. wb.close()

run_macro

run_macro(self, macro_name, *, file=None)

-file : 宏文件路径
-macro_name : 宏命令名称

运行宏

  1. wb = wps.excel.open(r"C:\test.xlsx")
  2. ws = wb.get_sheet()
  3. ws.macro_name("模块1",file=r"c:\模块1.bas")

Class: Sheet

Sheet负责为用户提供Sheet相关的一些操作。

read

read(self,range,*, only_visible=False, skip=0, max=1000)

  • range : ‘A’为列 ‘1’为行 ‘A1’为单元格 ‘A1:B2’为范围
  • only_visible : 只读可见
  • skip : 跳过多少行后开始读
  • max : 读列或者范围时不能超过max的范围

从该sheet中读取内容。
可以读取列的内容,读取行的内容,读取单元格的内容,读取一个范围的内容。
返回读取到的内容。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet()
  3. #读取单元格A1
  4. print(ws.read("A1"))
  5. #读取第一行
  6. print(ws.read("1"))
  7. #读取A列,跳过1行,从第2行开始读,只读可见的,最多读10条,返回元祖。
  8. print(ws.read("A",skip=1,max=10,only_visible=True))
  9. #读取A1:C3的范围,返回二维元祖,内层元祖代表一行的数据
  10. print(ws.read("A1:C3"))
  11. wb.close()

write

write(self,range, value,*,start_row=’1’,skip=0, max=1000)

  • range : ‘A’为列 ‘1’为行 ‘A1’为单元格
  • value : 当range为列/行的时候传入一维数组,为单元格则传入str /
  • start_row : 写入列时表示从哪一行开始写
  • skip : 跳过多少行后开始写
  • max: 写入列时不能超过max的范围

向该sheet中写入数据。
可以向单元格写入内容,可以向行写入内容,可以向列写入内容。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet()
  3. #写入单元格A1,内容为sss
  4. ws.write("A1","sss")
  5. #写入第1行,数据为[1,2,3]
  6. ws.write("1",[1,2,3])
  7. #写入A列,从第2行开始写,内容为[3,4,5,6,7]
  8. ws.write("A",[3,4,5,6,7],start_row=2)
  9. #写入一个范围,传入二维元祖
  10. ws.write("A10:B12",((1,2),(3,4),(5,6)))
  11. wb.save()
  12. wb.close()

copy

copy(self,range)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围

复制范围内的数据,一般搭配paste使用。

  1. #复制单元格
  2. ws.copy("A1")
  3. #复制第1行
  4. ws.copy("1")
  5. #复制第A列
  6. ws.copy("A")
  7. #复制A1:C3范围
  8. ws.copy("A1:c3")

paste

paste(self,col, row,*, paste_type=’数值’, retry=3)

  • col : 起始列号
  • row : 起始行号
  • type : 全部 公式 数值 格式 批注 验证 所有使用源主题的单元 边框除外 列宽 公式和数字格式 值和数字格式 所有合并条件格式
  • retry : 重试次数

粘贴范围内的数据,一般搭配copy使用。重试次数用于设置粘贴失败时尝试粘贴的最大次数。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet()
  3. ws.copy("A10:B12")
  4. ws.paste("A","13",paste_type="全部")
  5. wb.save()
  6. wb.close()

row_count

row_count(self)

获得该sheet的行数。
返回行数。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet()
  3. ws.row_count()
  4. wb.close()

col_count

col_count(self)

获得该sheet的列数。
返回列数。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet()
  3. ws.col_count()
  4. wb.close()

sort

sort(self, sort_fields, *, range=None, match_case=False, sort_method=’pinyin’, contains_header=False)

  • range :查找范围: 如’A1:C5’, 如果为空则查找整个Sheet(默认整个Sheet)
  • sort_fileds : 排序字段数组 sort_fields = [(‘A’, ‘value’, ‘desc’), (‘B’, ‘cell_color’, ‘asc’)]
  • match_case : 是否区分大小写
  • sort_method : 排序方法 字母、笔划
  • contains_header : 是否包含标题

对指定范围进行排序。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx")
  2. ws = wb.get_sheet()
  3. ws.sort(sort_fields=[("A","value","desc"),('B', 'cellColor', 'asc')])
  4. wb.save()
  5. wb.close()

filter

filter(self, col, array, *, delete=False)

  • col : 列号
  • array : 筛选值数组
  • delete : 筛选后是否删除

对列进行筛选。

  1. #在A列筛选等于1或者2的值
  2. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx",visible=True)
  3. ws = wb.get_sheet()
  4. # 列表里面是字符串
  5. ws.filter("A",["1","2"])

remove_filter

remove_filter(self)

移除筛选。

  1. ws.remove_filter()

merge_cell

merge_cell(self, range, *,each_row=False)

  • range : 需要合并的范围,必须为 A1:B2的格式
  • each_row : 是否行内合并

合并单元格。

  1. wb = wps.excel.open(r"C:\Users\wb-yzm488174\Desktop\test.xlsx",visible=True)
  2. ws = wb.get_sheet()
  3. ws.merge_cell("A1:B2",each_row=True)

insert

insert(range, insertDirection=None)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围
  • insertDirection : 插入方向 下移 右移

插入功能。

  1. # 插入单元格
  2. ws.insert("A1")
  3. # 插入列
  4. ws.insert("A")
  5. # 插入列
  6. ws.insert(1)
  7. # 插入范围
  8. ws.insert("A1:B2")

delete

delete(self,range, *,insertDirection=None)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围
  • insertDirection : 插入方向 上移 左移

删除功能。

  1. ws.delete("A1")
  2. ws.delete("A")
  3. ws.delete(1)
  4. ws.delete("A1:B2")

remove_duplicate

remove_duplicate(self,range, cols)

  • range : ‘A’为列 ‘A1:B2’为范围
  • cols : 去重根据列号的集合,集合中传入的是列的数

列去重功能。

  1. ws.remove_duplicate("A1:D13",[1,2])

find

find(self,text, *, range=None, count=0)

  • text : 查找的内容
  • range : 查找范围: 如’A1:C5’, 如果为空则查找整个Sheet(默认整个Sheet)
  • count : 0表示查找所有匹配项(默认为0)
  • 返回值: 二维数组,每行都是一个返回结果,第一列是行号,第二列是列号,第三列是匹配的单元格里的值; 返回0表示未找到任何匹配项

查找指定内容功能。

  1. print(ws.find("1"))

replace

replace(self, text, replacement, *, range=None, match_case=False)

  • text : 查找的内容
  • replacement : 替换成的内容
  • range : 查找范围: 如’A1:C5’, 如果为空则查找整个Sheet(默认整个Sheet)
  • match_case : 是否大小写匹配

替换指定内容功能。

  1. ws.replace("AAA","ddd")

add_picture

add_picture(self,file, col, row, *,width=None, height=None)

  • file : 插入图片的路径
  • col : 左上角单元格的列号
  • row : 左上角单元格的行号
  • width : 图片的宽度
  • height : 图片的高度

向指定位置插入图片。不设置宽高按原图大小插入,设置宽高中的一个会按比例缩放,都设置有可能会导致图片变形。

  1. ws.add_picture(r"C:\aaa.jpg","A","2")

get_row_height

get_row_height(self,row)

  • row : 行号

获得指定行高度。

  1. print(ws.get_row_height("1"))

set_row_height

set_row_height(self, row, height)

  • row : 行号
  • height : 行高

设置指定行高度。

  1. ws.set_row_height("1","20")

get_col_width

get_col_width(self,col)

  • col : 列号

获得指定列宽度。

  1. print(ws.get_col_width("A"))

set_col_width

set_col_width(self,col, width)

  • col : 列号
  • width : 列宽

设置指定列宽度。

  1. ws.set_col_width("A","40")

get_formula

get_formula(self,range)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围

获取指定范围的公式。

  1. # 返回单元格公式
  2. print(ws.get_formula("A1"))
  3. # 元祖套元祖
  4. print(ws.get_formula("1"))
  5. # 返回二维元祖(('公式内容',), ('公式内容',))
  6. print(ws.get_formula("A"))
  7. # 返回二维元祖(('公式内容','公式内容'), ('公式内容','公式内容'))
  8. print(ws.get_formula("A1:C2"))

set_formula

set_formula(self,range, formula)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围
  • formula : 公式

设置指定范围的公式。

  1. ws.set_formula("B4","=SUM(B1:B3)")

get_style

get_style(self,range, style)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围
  • style : fontsize fontcolor fontname bgcolor
    获取指定范围的样式。
  1. print(ws.get_style("A1","fontname"))

set_style

set_style(self,range, style, value, color_format=None)

  • range : ‘A’为列 ‘1’位行 ‘A1’为单元格 ‘A1:B2’为范围
  • style : fontsize fontcolor fontname bgcolor
  • value : 设置该属性的值,如果style为fontcolor/bgcolor,则value可以为’#FFFFFF’或者’255,255,255’
  • format : 颜色类型,如果style为fontcolor/bgcolor,需设置format为’HEX’或者’RGB’

设置指定范围的样式。

  1. ws.set_style("A1","fontname","黑体")

get_comment

get_comment(self,range)

  • range : ‘A1’为单元格 ‘A1:B2’为范围

获取指定范围的注释。

  1. print(ws.get_comment("A1"))

set_comment

set_comment(self,range, comment)

  • range : ‘A1’为单元格
  • comment : 注释

往指定范围插入注释。

  1. sheet.set_comment("A1","xxx")