暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 简单操作 Word

做一个柔情的程序猿 2020-09-05
605

前言

这次梳理的篇幅主要是涉及Word以及如何通过python对Word进行操作等,对巩固自己的python知识也是很有帮助的,进一步的对Word的使用而言也是帮助很大的。

但更多的是抛砖引玉,希望对你们有所帮助。

感谢各位鼓励与支持🌹🌹🌹,往期文章都在最后梳理出来了(●'◡'●)

接下来就以问题的形式展开梳理👇

python对应下的Word

Word,Word一般指Microsoft Office Word。Microsoft Word微软公司的一个文字处理器应用程序Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果

安装python-docx

处理 Word 需要用到 python-docx 库,目前版本为 0.8.10 ,执行如下安装命令:👇
    $ pip install python-docx
    ################# 运行结果 ################
    C:\Users\Y>pip install python-docx
    Looking in indexes: https://pypi.doubanio.com/simple
    Collecting python-docx
    Downloading https://pypi.doubanio.com/packages/e4/83/c66a1934ed5ed8ab1dbb9931f1779079f8bca0f6bbc5793c06c4b5e7d671/python-docx-0.8.10.tar.gz (5.5MB)
    |████████████████████████████████| 5.5MB 3.2MB/s
    Requirement already satisfied: lxml>=2.3.2 in c:\users\y\appdata\local\programs\python\python37\lib\site-packages (from python-docx) (4.5.0)
    Building wheels for collected packages: python-docx
    Building wheel for python-docx (setup.py) ... done
    Created wheel for python-docx: filename=python_docx-0.8.10-cp37-none-any.whl size=184496 sha256=7ac76d3eec848a255b4f197d07e7b78ab33598c814d536d9b3c90b5a3e2a57fb
    Stored in directory: C:\Users\Y\AppData\Local\pip\Cache\wheels\05\7d\71\bb534b75918095724d0342119154c3d0fc035cedfe2f6c9a6c
    Successfully built python-docx
    Installing collected packages: python-docx
    Successfully installed python-docx-0.8.10

    OK,如果提示以上信息则安装成功。


    python下写入Word

    平时我们在操作 Word 写文档的时候,一般分为几部分:标题、章节、段落、图片、表格、引用以及项目符号编号等。下面我们就按这几部分如何用 Python 操作来一一介绍。

    标题

    文档标题创建比较简单,通过 Document() 创建出一个空白文档,只要调用 add_heading 方法就能创建标题。代码如下:👇
      # 导入库
      from docx import Document
      from docx.shared import Pt
      from docx.shared import Inches
      from docx.oxml.ns import qn

      # 新建空白文档
      doc1 = Document()

      # 新增文档标题
      doc1.add_heading('如何使用 Python 创建和操作 Word',0)

      # 保存文件
      doc1.save('word1.docx')

      这样就完成了创建文档和文章标题的操作,下面运行程序,会生成名为 word1.docx 的文档,打开文章显示如下图所示:👇

      章节与段落

      有了文章标题,下面我们来看章节和段落是怎么操作的,在上面代码后面增加章节和段落操作的代码如下:👇
        # 导入库
        from docx import Document
        from docx.shared import Pt
        from docx.shared import Inches
        from docx.oxml.ns import qn

        # 新建空白文档
        doc1 = Document()

        # 新增文档标题
        doc1.add_heading('如何使用 Python 创建和操作 Word',0)

        # 创建段落描述
        doc1.add_paragraph(' Word 文档在我们现在的生活和工作中都用的比较多,我们平时都使用 wps 或者 office 来对 Word 进行处理,可能没想过它可以用 Python 生成,下面我们就介绍具体如何操作……')

        # 创建一级标题
        doc1.add_heading('安装 python-docx 库',1)

        # 创建段落描述
        doc1.add_paragraph('现在开始我们来介绍如何安装 python-docx 库,具体需要以下两步操作:')

        # 创建二级标题
        doc1.add_heading('第一步:安装 Python',2)

        # 创建段落描述
        doc1.add_paragraph('在python官网下载python安装包进行安装。')

        # 创建三级标题
        doc1.add_heading('第二步:安装 python-docx 库',3)

        # 创建段落描述
        doc1.add_paragraph('window下win+R输入CMD打开命令行,输入pip install python-docx即可下载。')

        # 保存文件
        doc1.save('word2.docx')

        上面我们说了 add_heading 方法用来增加文章标题,不过通过上面代码我们能知道,这个方法的第二个参数为数字,其实这个就是用来标示几级标题的,在我们平时就用来标示章节。add_paragraph 方法则是用来在文章中增加段落的, 运行程序看下效果:👇

        字体与引用

        前面我们通过 add_paragraph 方法增加了三个段落,现在我们就看下如何对段落中字体如何操作,以及引用段落的操作。继续修改以上代码,增加对文章字体字号、加粗、倾斜等操作,具体代码如下:👇
          # 导入库
          from docx import Document
          from docx.shared import Pt
          from docx.shared import Inches
          from docx.oxml.ns import qn
          from docx.shared import RGBColor

          # 新建空白文档
          doc1 = Document()

          # 新增文档标题
          doc1.add_heading('如何使用 Python 创建和操作 Word',0)

          # 创建段落描述
          doc1.add_paragraph(' Word 文档在我们现在的生活和工作中都用的比较多,我们平时都使用 wps 或者 office 来对 Word 进行处理,可能没想过它可以用 Python 生成,下面我们就介绍具体如何操作……')

          # 创建一级标题
          doc1.add_heading('安装 python-docx 库',1)

          # 创建段落描述
          doc1.add_paragraph('现在开始我们来介绍如何安装 python-docx 库,具体需要以下两步操作:')

          # 创建二级标题
          doc1.add_heading('第一步:安装 Python',2)

          # 创建段落描述
          doc1.add_paragraph('在python官网下载python安装包进行安装。')

          # 创建三级标题
          doc1.add_heading('第二步:安装 python-docx 库',3)

          # 创建段落描述
          doc1.add_paragraph('window下win+R输入CMD打开命令行,输入pip install python-docx即可下载。')


          # 创建段落,添加文档内容
          paragraph = doc1.add_paragraph('这是第二步的安装描述!')

          # 段落中增加文字,并设置字体字号
          run = paragraph.add_run('(注意:这里设置了字号为20)')
          run.font.size = Pt(20)

          # 设置英文字体
          run = doc1.add_paragraph('这里设置英文字体:').add_run('This Font is Times New Roman ')
          run.font.name = 'Times New Roman'

          # 设置中文字体
          run = doc1.add_paragraph('这里设置中文字体:').add_run('当前字体为黑体')
          run.font.name='黑体'
          r = run._element
          r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')

          # 设置斜体
          run = doc1.add_paragraph('这段设置:').add_run('文字的是斜体 ')
          run.italic = True

          # 设置粗体
          run = doc1.add_paragraph('这段再设置:').add_run('这里设置粗体').bold = True

          # 设置字体带下划线
          run = doc1.add_paragraph('这段为下划线:').add_run('这里设置带下划线').underline = True

          # 设置字体颜色
          run = doc1.add_paragraph('这段字体为红色:').add_run('这里设置字体为红色')
          run.font.color.rgb = RGBColor(0xFF, 0x00, 0x00)

          # 增加引用
          doc1.add_paragraph('这里是我们引用的一段话:用Python改变人生,改变世界,FIGHTING。', style='Intense Quote')

          # 保存文件
          doc1.save('word2.docx')

          上面代码主要是针对段落字体的各种设置,每段代码都标有注释应该比较容易理解, 运行程序看下效果:👇

          项目列表

          我们平时编辑文章时,插入图片和表格也是经常使用到的,那用 Python 该如何操作插入图片和表格?首先我们随便找了个图片,我这用了 Python的logo 标志图,文件名为 python-logo.png,利用add_picture添加图片;利用add_table添加表格,然后在 word1.py 文件中增加如下代码:👇
            # 导入库
            from docx import Document
            from docx.shared import Pt
            from docx.shared import Inches
            from docx.oxml.ns import qn

            # 新建文档
            doc2 = Document()

            doc2.add_paragraph('哪个不是动物:')

            # 增加无序列表
            doc2.add_paragraph(
            '苹果', style='List Bullet'
            )
            doc2.add_paragraph(
            '喜洋洋', style='List Bullet'
            )
            doc2.add_paragraph(
            '懒洋洋', style='List Bullet'
            )
            doc2.add_paragraph(
            '沸洋洋', style='List Bullet'
            )
            doc2.add_paragraph(
            '灰太狼', style='List Bullet'
            )

            doc2.add_paragraph('2020年度计划:')
            # 增加有序列表
            doc2.add_paragraph(
            'CSDN达到博客专家', style='List Number'
            )
            doc2.add_paragraph(
            '每周健身三天', style='List Number'
            )

            doc2.add_paragraph(
            '每天学习一个新知识点', style='List Number'
            )
            doc2.add_paragraph(
            '学习50本书', style='List Number'
            )
            doc2.add_paragraph(
            '减少加班时间', style='List Number'
            )

            doc2.add_heading('图片',2)

            # 增加图像
            doc2.add_picture('C:/Users/Y/Pictures/python-logo.png', width=Inches(5.5))

            doc2.add_heading('表格',2)

            # 增加表格,这是表格头
            table = doc2.add_table(rows=1, cols=4)
            hdr_cells = table.rows[0].cells
            hdr_cells[0].text = '编号'
            hdr_cells[1].text = '姓名'
            hdr_cells[2].text = '职业'

            # 这是表格数据
            records = (
            (1, '张三', '电工'),
            (2, '张五', '老板'),
            (3, '马六', 'IT'),
            (4, '李四', '工程师')
            )

            # 遍历数据并展示
            for id, name, work in records:
            row_cells = table.add_row().cells
            row_cells[0].text = str(id)
            row_cells[1].text = name
            row_cells[2].text = work

            # 手动增加分页
            doc2.add_page_break()

            # 保存文件
            doc2.save('word1.docx')

             运行程序看下效果:👇


            python下读取Word

            上面写了很多用 Python 创建空白 Word 文件格式化字体并保存到文件中,接下来我们再简单介绍下如何读取已有的 Word 文件,请看如下代码:👇

              # 导入 xlwt 库
              import xlwt

              # 创建 xls 文件对象
              wb = xlwt.Workbook()

              # 新增两个表单页
              sh1 = wb.add_sheet('成绩')
              sh2 = wb.add_sheet('汇总')

              # 然后按照位置来添加数据,第一个参数是行,第二个参数是列
              # 写入第一个sheet
              sh1.write(0, 0, '姓名')
              sh1.write(0, 1, '专业')
              sh1.write(0, 2, '科目')
              sh1.write(0, 3, '成绩')

              sh1.write(1, 0, '张三')
              sh1.write(1, 1, '信息与通信工程')
              sh1.write(1, 2, '数值分析')
              sh1.write(1, 3, 88)

              sh1.write(2, 0, '李四')
              sh1.write(2, 1, '物联网工程')
              sh1.write(2, 2, '数字信号处理分析')
              sh1.write(2, 3, 95)

              sh1.write(3, 0, '王华')
              sh1.write(3, 1, '电子与通信工程')
              sh1.write(3, 2, '模糊数学')
              sh1.write(3, 3, 90)

              # 写入第二个sheet
              sh2.write(0, 0, '总分')
              sh2.write(1, 0, 273)

              # 最后保存文件即可
              wb.save('test.xls')

              以上代码是将之前我们输出的两个文档内容都读取出来,当然这里只是打印到控制台,并没有做其他处理。现在我们执行看下结果:👇

              以上就是所有关于python对于Word的相应操作,具体复杂的操作还需要自己去学习,这里只是起到了抛砖引玉的效果。


              「❤️ 感谢大家」

              如果你觉得这篇内容对你挺有有帮助的话:

              1. 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
              2. 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
              3. 觉得不错的话,也可以阅读近期梳理的文章(感谢掘友的鼓励与支持🌹🌹🌹):

              「❤️ 资源传送门」

              1. 扫码关注【做一个柔情的程序猿】公众号

              2. 在【做一个柔情的程序猿】后台回复 【python资料】【2020秋招】 获取相应资料

              👆长按上方二维码 2 秒
              回复「python资料即可获取python学习资料
              回复「2020秋招即可获取2020秋招面试题及答案

              文章转载自做一个柔情的程序猿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论