精华内容
下载资源
问答
  • 2022-05-09 21:59:11


    安装

    安装所需的模块

    pip3 install python-docx
    

    验证是否安装成功
    打开python编译器 python 3.7(64-bit)
    输入
    <<<import docx
    如果不报错即成功

    简单认识python自动化

    from docx import Document
    ##Python-docx模块只能够处理docx文件,不能处理doc文件。
    file_name = docx.Document('E:/xxx/xxx/xx.docx')
    print(file_name.paragraphs,file_name.paragraphs[0:2])
    for a in file_name.paragraphs:
        print(a.text)
    

    docx.Document()
    文件是一个列表形式,每个段落都不是文字显示的,是列表中的一个对象
    可以使用切片的方式来获取
    eg:

    file_name.paragraphs[0:2]
    

    看到每个段落的文字

    for a in file_name.paragraphs:
        print(a.text)
    

    看到某一段的文字

    #   数字0代表第几段
    var a = file_name.paragraphs[0]
    print(a)
    

    段落下面还有一层叫块
    在这里插入图片描述
    什么叫块?
    如图显示 在第一段中有粗体有斜体有红字 有三种格式就是三块
    简而言之块就是格式

    获取每一块

    #  打印结果:粗体一行斜体一行红字一行
    var a = file_name.paragraphs[0]
    var k = a.runs
    for i in k:
    	print(i.text)
    

    搜索文件中某些字出现过的次数
    1、遍历段落中

    file_name = Document('E:/python_workspace/python_automation/资料/4.docx')
    num = 0
    for i in file_name.paragraphs:
        if '孙兴华' in i.text:
            num += 1
    print('num = ',num)
    

    如果一个段落中出现多次,只能记录一次(以上写法)

    2、遍历表格中

    num = 0;
    forin file_name.tables:
    	forin.rows:
    		for 单元格 in.cells:
    			if '孙兴华' in 单元格.text:
    				num += 1;
    print(num)
    			
    		
    

    读取word中的文字,标题

    python办公自动化 只能操作docx不能操作doc office老版本不支持python办公自动化

    更多相关内容
  • 本文是鉴于有些粉丝的工作需求,有时候需要遇到这些文件的处理。因此,我写了一个文章集合,供大家参考,整篇文章已经整理成册(如下图所示),如有需求,请私聊! 目录   章节一:python使用openpyxl操作excel ...
  • python自动化办公手册pdf ,更多Pyhon自动化学习可参考我的这篇文章:https://blog.csdn.net/qq_36816848/article/details/118077191
  • 通过Python自动化办公把提取word中的表格,填充到到excel当中. 首先通过for循环提取word当中的表格的每个单元格的内容,然后指定excel,进行批量填充
  • 自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。 自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。 数据库开发实战篇 更新中 爬虫入门与实战 更新中 数据分析篇 更新...
    万叶集
    🎉 隐约雷鸣,阴霾天空。 🎉
    🎉 但盼风雨来,能留你在此。 🎉


    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    专栏系列(点击解锁)学习路线指引知识定位
    🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
    语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
    自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
    自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
    数据库开发实战篇 更新中
    爬虫入门与实战 更新中
    数据分析篇 更新中
    前端入门+flask 全栈篇 更新中
    django+vue全栈篇 更新中
    拓展-人工智能入门 更新中
    网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
    网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
    vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
    shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
    WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
    测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
    测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
    RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
    Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
    MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


    上一章节学习了段落的样式之后,尤其是段落的居中。那么图片是否也可以以这样的方式居中呢?居中是可以的,但是实用的居中方法与段落居中的方式还是有一点区别的。

    🐳 图片居中

    接下来我们看一看图片的居中(居左或居右)应该怎么做呢?

    para = doc.add_paragraph 首先通过 doc 对象创建一个段落


    para.alignment = WD_ALIGN_PARAGRAPH.CENTER 接下来再对这个段落进行 alignment 的设置 (需 from docx.enum.text import WD_ALIGN_PARAGRAPH


    _para = para.add_run() 然后对段落进行追加内容,需要注意的是追加的内容是空的


    _para.add_picture(test.png) 当得到这个追加对象的时候,可以使用 add_picture() 方法添加图片(传入的是图片地址,这样被追加进空段落的图片就可以达到居中的效果。)。

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    from docx.shared import Inches, RGBColor, Pt
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_ALIGN_PARAGRAPH
    
    doc = Document()
    
    style = doc.styles['Normal']    # 使用标准样式
    style.font.name = '微软雅黑'     # 使用 "微软雅黑" 字体
    # style.font.color.rgb = RGBColor(255, 0, 0)      # 使用红色作为字体颜色
    style.font.size = Pt(14)
    
    
    title = doc.add_heading('', 0)      # 添加 word 文件的 title 标题;(需要注意的是,这里第一行的标题是不能设置为斜体等类型的)
                                        # 若想要将标题设置为斜体,需在这一行标题内容为空,然后针对追加内容写入标题设置为斜体
    title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER      # 标题居中
    title.style.font.size = Pt(20)
    title_run = title.add_run('this is title\n测试版本')      # 针对 title 标题进行内容追加(换行)
    title_run.italic = True                        # 将追加的内容转为斜体字
    title_run.blod = True                          # 将追加的内容转为粗体字
    title_run.underline = True
    # print(dir(title))       # 通过 dir 函数查看当前 title 标题可以使用的更多有趣的函数
    # title = doc.add_heading('', 0)
    
    
    para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
    para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落').italic = True    # 将第二行段落设置为斜体
    para.add_run('\n这是 \"test.docx\" 文件追加的的第三行段落').blod = True      # 将第三行段落设置为粗体
    para.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER     # 将段落设置为居中显示
    # print(dir(para))       # 通过 dir 函数查看当前 para 段落可以使用的更多有趣的函数
    
    para_test = doc.add_paragraph()     # 通过 doc 对象创建一个空的段落
    para_test.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER     # 设置样式居中   
    _para_test = para_test.add_run()    # 进行追加
    image = _para_test.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))      # 添加图片
    
    table_title = ['name', 'age', 'sex']    # 定义表格的第一行的标题
    table = doc.add_table(rows=1, cols=3)   # 定义表格的行数、列数
    table_cells = table.rows[0].cells       # 将 table_title 的每列的名称写入表格
    table_cells[0].text = table_title[0]
    table_cells[1].text = table_title[1]
    table_cells[2].text = table_title[2]
    
    data = [            # 定义 data 的内容,准备将其追加写入表格
        ('Neo', '18', 'man'),
        ('Adem', '17', 'man'),
        ('Lily', '18', 'women')
    ]
    
    for i in data:      # 利用 for 循环将 data 追加写入表格
        row_cells = table.add_row().cells
        row_cells[0].text = i[0]
        row_cells[1].text = i[1]
        row_cells[2].text = i[2]
    
    doc.add_page_break()        # 添加 word 文件的分页
    title = doc.add_heading('this is page_2 title', 1)    # 添加 word 文件的第二分页的 title 标题
    
    doc.save('test.docx')
    

    运行结果如下:



    🐳 表格居中

    接下来我们就看看表格样式的设定。

    首先需要获取表格样式类型,然后在众多的表格样式集中找到我们需要的样式类型(即 from docx.enum.style import WD_STYLE_TYPE)。可以通过之前学习的 styles 里面找到符合 WD_STYLE_TYPE 的表格类型即可。

    在获取到表格类型之后,就需要定义表格。document.add_table(rows, cols, style) ,在第三个 style 参数中添加类型的名称即可。

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    from docx.shared import Inches, RGBColor, Pt
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_ALIGN_PARAGRAPH
    from docx.enum.style import WD_STYLE_TYPE
    
    
    doc = Document()
    
    style = doc.styles['Normal']    # 使用标准样式
    style.font.name = '微软雅黑'     # 使用 "微软雅黑" 字体
    # style.font.color.rgb = RGBColor(255, 0, 0)      # 使用红色作为字体颜色
    style.font.size = Pt(14)
    
    
    title = doc.add_heading('', 0)      # 添加 word 文件的 title 标题;(需要注意的是,这里第一行的标题是不能设置为斜体等类型的)
                                        # 若想要将标题设置为斜体,需在这一行标题内容为空,然后针对追加内容写入标题设置为斜体
    title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER      # 标题居中
    title.style.font.size = Pt(20)
    title_run = title.add_run('this is title\n测试版本')      # 针对 title 标题进行内容追加(换行)
    title_run.italic = True                        # 将追加的内容转为斜体字
    title_run.blod = True                          # 将追加的内容转为粗体字
    title_run.underline = True
    # print(dir(title))       # 通过 dir 函数查看当前 title 标题可以使用的更多有趣的函数
    # title = doc.add_heading('', 0)
    
    
    para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
    para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落').italic = True    # 将第二行段落设置为斜体
    para.add_run('\n这是 \"test.docx\" 文件追加的的第三行段落').blod = True      # 将第三行段落设置为粗体
    para.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER     # 将段落设置为居中显示
    # print(dir(para))       # 通过 dir 函数查看当前 para 段落可以使用的更多有趣的函数
    
    para_test = doc.add_paragraph()     # 通过 doc 对象创建一个空的段落
    para_test.alignment = WD_ALIGN_PARAGRAPH.CENTER     # 设置样式居中
    _para_test = para_test.add_run()    # 进行追加
    image = _para_test.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))      # 添加图片
    
    
    for i in doc.styles:        # 获取 WD_STYLE_TYPE.TABLE 对应的表格样式
        if i.type == WD_STYLE_TYPE.TABLE:
            print(i.name)
    
    table_title = ['name', 'age', 'sex']    # 定义表格的第一行的标题
    table = doc.add_table(rows=1, cols=3, style='Colorful Shading Accent 5')   # 定义表格的行数、列数
    table_cells = table.rows[0].cells       # 将 table_title 的每列的名称写入表格
    table_cells[0].text = table_title[0]
    table_cells[1].text = table_title[1]
    table_cells[2].text = table_title[2]
    
    data = [            # 定义 data 的内容,准备将其追加写入表格
        ('Neo', '18', 'man'),
        ('Adem', '17', 'man'),
        ('Lily', '18', 'women')
    ]
    
    for i in data:      # 利用 for 循环将 data 追加写入表格
        row_cells = table.add_row().cells
        row_cells[0].text = i[0]
        row_cells[1].text = i[1]
        row_cells[2].text = i[2]
    
    doc.add_page_break()        # 添加 word 文件的分页
    title = doc.add_heading('this is page_2 title', 1)    # 添加 word 文件的第二分页的 title 标题
    
    doc.save('test.docx')
    

    运行结果如下:



    展开全文
  • 前面几个章节我们学习了对于普通文件的操作,比如说文件的创建、复制粘贴、裁剪粘贴、文件名的重命名、删除等等。另外还学习了一些基本练习,如何查找文件、...接下来我们就进入到 word 文件自动化操作的学习内容。...
    万叶集
    🎉 隐约雷鸣,阴霾天空。 🎉
    🎉 但盼风雨来,能留你在此。 🎉


    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    专栏系列(点击解锁)学习路线指引知识定位
    🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
    语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
    自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
    自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
    数据库开发实战篇 更新中
    爬虫入门与实战 更新中
    数据分析篇 更新中
    前端入门+flask 全栈篇 更新中
    django+vue全栈篇 更新中
    拓展-人工智能入门 更新中
    网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
    网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
    vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
    shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
    WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
    测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
    测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
    RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
    Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
    MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


    前面几个章节我们学习了对于普通文件的操作,比如说文件的创建、复制粘贴、裁剪粘贴、文件名的重命名、删除等等。另外还学习了一些基本练习,如何查找文件、如何按照内容查找文件等等。

    在本章节及后续,将开始学习一些特殊文件的自动化相关操作。如 word、excel、PPT,虽然说是特殊文件,其实也是实际工作中我们经常会用到的文件类型。

    接下来我们就进入到 word 文件自动化操作的学习内容。

    该章节涉及的新模块

    • python-docx
    • pdfkit
    • pydocx

    🐳 利用 python 批量读取文件

    🐬 word利器之python-docx

    python-docx 是用于创建可修改 微软 Word 的一个 python 库,提供全套的 Word 操作,是最常用的 Word 工具。

    使用前,先了解几个概念:

    • Document:是一个 Word 文档 对象,不同于 VBA 中 Worksheet 的概念,Document 是独立的,打开不同的 Word 文档,就会有不同的 Document 对象,相互之间没有影响
    • Paragraph:是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段
    • Run 表示一个节段,每个段落由多个 节段 组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个 段落 对象有个 Run 列表。

    例如下图的 word 文档示意图:



    word 文档结构划分如下:



    🐬 python-docx 安装

    安装:

    pip install python-docx 如果安装速度太慢的话,可以换一个国内的源地址(如下)

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx


    导入:

    import docx

    from docx import …

    🐬 python-docx 之 Document

    导入包与模块:

    from docx import Document


    使用方法:

    Document(word文件地址)


    返回值:

    word文件对象

    🐳 python-docx 之段落内容读取

    实际上要想读取一个 word 文档,主要就是读取它的段落以及它的表格。无论是段落还是表格,它的内部都是字符串,我们的目的就是读取这些字符串的内容。

    先看一下段落内容的读取方式:

    来源:

    document_obj.paragraphs 通过 document 对象的 paragraphs 函数返回一个段落的列表;如果 word 文件存在多个段落,就会有多个段落对象。


    使用方法:

    通过循环获取每个段落对象,并调用 text

    演示案例脚本如下:

    # coding:utf-8
    
    
    import os
    from docx import Document
    
    
    path = os.path.join(os.getcwd(), 'test_file/文本.docx')
    print("\'文本.docx\' 的路径为:", path)     # 调试路径
    
    doc = Document(path)
    
    for p in doc.paragraphs:
        print(p.text)
    

    运行结果如下:(PS:文本只是演示,本人非培训机构的!



    🐳 python-docx 之表格内容读取

    接下来我们看一下如何读取 word 文件中的表格内容:

    来源:

    document_obj.tables 通过 document 对象的 paragraphs 函数返回一个表格的列表;里面是一个一个的表格的对象。


    使用方法:

    同样通过循环,获取行与列的内容


    返回值:

    每个表格字段(字符串)

    演示案例代码如下:

    # coding:utf-8
    
    
    import os
    from docx import Document
    
    
    path = os.path.join(os.getcwd(), 'test_file/文本.docx')
    print("\'文本.docx\' 的路径为:", path)     # 调试路径
    
    doc = Document(path)
    
    # for p in doc.paragraphs:
    #     print(p.text)
    
    for t in doc.tables:            # for 循环获取表格对象
        for row in t.rows:          # 获取每一行
            row_str = []
            for cell in row.cells:    # 获取每一行单独的小表格,然后将其内容拼接起来;拼接完成之后再第二个for循环中打印出来
                row_str.append(cell.text)
            print(row_str)
            
    # 也可以通过 "columns" 获取表格中的列的内容,可以自己尝试一下
    

    运行结果如下:



    展开全文
  • 主要介绍了基于python实现自动化办公学习笔记,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Python自动化办公Excel+Word+PPT,附课件、代码、软件,完整版视频教程下载。 Python办公自动化课程包含:Python操作Excel+Word+PPT,moviepy自动化视频剪辑+Python操作图片+操作PDF+自动操控电脑+收发邮件+自动化...
  • 时间被重复工作挤满?永远处理不完的文档与报表?工作效率低 总被领导批评教育?
  • 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共有近2600条类似格式的表格细栏,每个栏目包括的信息有: 日期 发文单位 文号 标题 ...
  • 分享课程——Python自动化办公Excel+Word+PPT课程,手把手教Python办公自动化,0编程经验也能轻松学。 课程包含:Python操作Excel+Word+PPT,moviepy自动化视频剪辑+Python操作图片+操作PDF+自动操控电脑+收发邮件+...
  • 办公自动化教材word
  • 0基础学习python办公自动化 Excel,word
  • python自动化办公之操作word
  • 办公自动化试题 word部分考试题目所用的文字和图片素材。
  • 分享课程——Python自动化办公Excel+Word+PPT,附课件、代码、软件,完整版视频教程下载。 Python办公自动化课程包含:Python操作Excel+Word+PPT,moviepy自动化视频剪辑+Python操作图片+操作PDF+自动操控电脑+收发...
  • python办公自动化源码集锦-Excel与Word互相转换源码
  • 内容包括:01 python基础,软件和环境教程 02Excel自动化处理 03Word自动化处理 04 PPT自动化处理 05 邮件自动化处理 06 Web自动化处理 07微信,钉钉自动化处理 08 爬虫自动化处理 09 文件自动化处理 10总结 内附...
  • python办公自动化,python视频教程零基础自动化高效办公excel全套人工智能程序课程
  • 办公自动化教程》第5章Word2003的综合应用.pptx
  • python办公自动化源码集锦-光速对比文件
  • 前言 在前几天的文章中我们讲解了如何从Word表格中提取指定数据并...而我们要做的就是对每一列的数据按照一定的规则进行计算、整理并使用Python自动填入到Word中,大致的要求如下 上面仅是部分要求,真实需要填入wor
  • python win32 批量修改替换excel和word里的内容 自动化办公
  • Python实现办公自动-自动化操作Word.zip
  • 上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片。从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档。...
    万叶集
    🎉 隐约雷鸣,阴霾天空。 🎉
    🎉 但盼风雨来,能留你在此。 🎉


    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    专栏系列(点击解锁)学习路线指引知识定位
    🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
    语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
    自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
    自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
    数据库开发实战篇 更新中
    爬虫入门与实战 更新中
    数据分析篇 更新中
    前端入门+flask 全栈篇 更新中
    django+vue全栈篇 更新中
    拓展-人工智能入门 更新中
    网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
    网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
    vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
    shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
    WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
    测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
    测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
    RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
    Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
    MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


    上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片。从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档。

    🐳 保存生成 word

    在学习如何生成一个 word 文档之前,我们来看看如何保存生成 word 文件,因为马上就会用到。

    使用方法:

    document_obj.save(文件地址) ---> /home/demo.docx

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    
    
    doc = Document()
    
    doc.save('test.docx')
    

    运行结果如下:



    🐳 生成标题

    使用方法:

    title_obj = DocumentObj.add_heading(标题内容, 标题样式等级) 通过 Document 对象调用 add_heading 函数 返回 标题对象


    标题样式等级:

    0 <= lever <= 9


    标题内容追加:

    titleobj.add_run 通过标题对象调用 add_run 函数 进行标题内容的追加

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    
    
    doc = Document()
    
    title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 标题
    title.add_run('\n - 测试版本')      # 针对 title 标题进行内容追加(换行)
    
    
    doc.save('test.docx')
    

    运行结果如下:



    🐳 生成段落

    使用方法:

    para_obj = document_obj.add_paragraph(段落内容) 通过 Document 对象调用 add_paragraph 函数 返回 段落对象


    段落内容追加:

    para_obj.add_run(字符串内容)


    换行方式:

    \n 换行特殊字符来分割段落

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    
    
    doc = Document()
    
    title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 标题
    title.add_run('\n - 测试版本')      # 针对 title 标题进行内容追加(换行)
    
    para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
    para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
    
    doc.save('test.docx')
    

    运行结果如下:



    🐳 添加图片

    使用方法:

    image_obj = document_obj.add_picture(图片地址, 宽, 高) 通过 Document 对象调用 add_picture 函数 返回 图片对象


    宽高定义:

    from docx.shared import Inches

    add_picture(x, width=Inches(5), height=Inches(5))

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    from docx.shared import Inches
    
    
    doc = Document()
    
    title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 标题
    title.add_run('\n - 测试版本')      # 针对 title 标题进行内容追加(换行)
    
    para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
    para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
    
    image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))
    
    doc.save('test.docx')
    

    运行结果如下:



    🐳 添加表格

    使用方法:

    table_obj = document_obj.add_table(row=行数, cols=列数) 通过 Document 对象调用 add_table 函数 返回 表格对象

    cell = table_obj.row[0].cells 表格对象调用 rows 返回表格的行对象

    cell[0].text = 当前行 0 列的内容

    cell[1].text = 当前行 1 列的内容


    表格追加:

    row_cell = table.add_row().cells

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    from docx.shared import Inches
    
    
    doc = Document()
    
    title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 标题
    title.add_run('\n - 测试版本')      # 针对 title 标题进行内容追加(换行)
    
    para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
    para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
    
    image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))
    
    table_title = ['name', 'age', 'sex']
    table = doc.add_table(rows=1, cols=3)
    table_cells = table.rows[0].cells
    table_cells[0].text = table_title[0]
    table_cells[1].text = table_title[1]
    table_cells[2].text = table_title[2]
    
    data = [
        ('Neo', '18', 'man'),
        ('Adem', '17', 'man'),
        ('Lily', '18', 'women')
    ]
    
    for i in data:
        row_cells = table.add_row().cells
        row_cells[0].text = i[0]
        row_cells[1].text = i[1]
        row_cells[2].text = i[2]
    
    doc.save('test.docx')
    

    运行结果如下:



    🐳 分页

    使用方法:

    document_obj.add_page_break()

    代码示例如下:

    # coding:utf-8
    
    
    from docx import Document
    from docx.shared import Inches
    
    
    doc = Document()
    
    title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 标题
    title.add_run('\n - 测试版本')      # 针对 title 标题进行内容追加(换行)
    
    para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
    para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')
    
    image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))      # 添加图片
    
    table_title = ['name', 'age', 'sex']    # 定义表格的第一行的标题
    table = doc.add_table(rows=1, cols=3)   # 定义表格的行数、列数
    table_cells = table.rows[0].cells       # 将 table_title 的每列的名称写入表格
    table_cells[0].text = table_title[0]
    table_cells[1].text = table_title[1]
    table_cells[2].text = table_title[2]
    
    data = [            # 定义 data 的内容,准备将其追加写入表格
        ('Neo', '18', 'man'),
        ('Adem', '17', 'man'),
        ('Lily', '18', 'women')
    ]
    
    for i in data:      # 利用 for 循环将 data 追加写入表格
        row_cells = table.add_row().cells
        row_cells[0].text = i[0]
        row_cells[1].text = i[1]
        row_cells[2].text = i[2]
    
    doc.add_page_break()        # 添加 word 文件的分页
    title = doc.add_heading('this is page_2 title', 1)    # 添加 word 文件的第二分页的 title 标题
    
    doc.save('test.docx')
    

    运行结果如下:



    展开全文
  • 而对于 Word 文本时同样也有对应的 Python库 Python-docx,在日常办公中,如果需要处理多个 word 文本,且操作步骤都是重复单调的,我想这个库就可以帮到你 在了解 Python-docx 常用函数之前,需要知道 在 Python-...
  • 基于JAVA+SQL数据库的办公自动化系统开发,源码+word版lun文 采用Client/Server模式、利用JAVA语言进行系统的开发,以SQL Server 2000作为网络数据库,实现极光办公自动化系统。
  • python办公自动化之批量生成docx——根据excel生成word、根据word生成excel,可搜索CSDN原文(https://blog.csdn.net/FIREseeker/article/details/115493270)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,440
精华内容 5,776
关键字:

word自动化办公