精华内容
下载资源
问答
  • docx库
    2022-07-07 09:25:25

    正常思路

    pip install docx#不成功
    

    但不成功,好像是不完善还是怎么回事
    直接采用下面做法

    pip uninstall docx#删掉我刚才下载的
    pip install python-docx#下载这个才对
    

    虽然第一次下载也报错了,但是重新再pip install python-docx一次就成功了
    也有可能是镜像问题,可以参考下面

    pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple#清华镜像
    

    无关上面单纯记录一下小tip:(Ctrl+F网页内容快速查找)

    更多相关内容
  • python中docx库的简介 python-docx包,这是一个很强大的包,可以用来创建docx文档,包含段落、分页符、表格、图片、标题、样式等几乎所有的word文档中能常用的功能都包含了,这个包的主要功能便是用来创建文档,相对...
  • 主要介绍了Python docx库用法,结合实例形式分析了docx库相关的docx文件读取、文本添加、格式操作,需要的朋友可以参考下
  • docx库操作.md

    2020-06-09 17:55:54
    这是对python中docx库详解的markdown文件,里面包括了如何下载安装docx库,以及对文档指令的详细介绍
  • python-docx库读写word文档

    千次阅读 2022-05-18 08:58:06
    python-docx库读写word文档 一、简介 python-docx是利用python来读写word文件的第三方库。 开源地址是:https://github.com/python-openxml/python-docx 官方教程:https://python-docx.readthedocs.io/en/latest/ ...

    python-docx库读写word文档

    一、简介

    python-docx是利用python来读写word文件的第三方库。

    • 开源地址是:https://github.com/python-openxml/python-docx
    • 官方教程:https://python-docx.readthedocs.io/en/latest/
    • 安装:pip install python-docx

    python-docx库读写word文档主要涉及三个结构对象,层层递进。

    Document:文档对象

    from docx import Document
    doc = Document('./test1.docx')   # 打开当前路径下的已有文档
    doc = Document()      # 新建一个空白文档
    

    Paragraph:段落对象

    文档中的每一段内容,以换行符结尾。

    Run:文字块对象

    每个Paragraph中的不同部分,叫Run。注意:颜色、字体、粗细、斜体不同,就是不同的文字块。

    在这里插入图片描述

    二、读取word文档内容

    利用python-docx库来读取现有的word文档数据,思路是先逐层获取对象,再提取相应对象的text属性。

    1.读取纯文字docx文档。

    在这里插入图片描述

    for paragraph in doc.paragraphs:
        print(f'paragraph.text = {paragraph.text}')
        for run in paragraph.runs:
            print(f'\trun.text = {run.text}')
    
    # output
    paragraph.text = 你好,这是第一个测试python-docx库的文档。
    	run.text = 你好,这是第一个测试python-docx库的文档。
    paragraph.text = 这是第二段落
    	run.text = 这是第二段落
    paragraph.text = 这是第三段落,粗体、红色
    	run.text = 这是第三段落,
    	run.text = 粗体
    	run.text = 、
    	run.text = 红色
    

    小结:

    • 逐级别提取对象:doc.paragraphsparagraph.runs,获取的对象列表可迭代。
    • 提取对象文本:paragraph.textrun.text

    2.读取表格

    利用python-docx库来读取现有的word文档数据,思路是先获取表格对象,再利用行列序号获取cell对象,最后提取相应对象的text属性。如table.cell(i,j).text

    在这里插入图片描述

    doc2 = Document('./test2_table.docx')
    
    for table in doc2.tables:
        print("表格======{table}")
        for i in range(len(table.rows)):
            for j in range(len(table.columns)):
                print (f"{i}{j}列:数据:{table.cell(i,j).text}")
    
    # output
    表格======{table}
    00列:数据:日期
    01列:数据:最高温
    02列:数据:最低温
    03列:数据:天气
    04列:数据:风力风向
    05列:数据:空气质量指数
    10列:数据:2021-12-01 周三
    11列:数据:9°
    ...
    53列:数据:多云
    54列:数据:东南风255列:数据:44 优
    表格======{table}
    00列:数据:列1
    01列:数据:列2
    02列:数据:列3
    03列:数据:列4
    10列:数据:数据A1
    ...
    42列:数据:数据C4
    43列:数据:数据D4
    

    三、写入word文档内容

    利用python-docx库来写入数据到word文档,先创建文档,调用Document文档对象的方法实现写入,最后保存。

    • 添加标题add_heading()
    • 段落add_paragraph()
    • 文字块add_run()
    • 添加空白页add_page_break()
    • 添加表格add_table()
    • 添加图片add_picture()
    • 保存doc.save()

    1.写入标题、段落

    from docx import Document
    doc = Document()      # 新建一个空白文档
    doc.add_heading('这是一个一级标题', level=1)  # 标题序号1~9
    doc.add_heading('这是一个二级标题', level=2)  # 标题序号1~9
    text = "段落:燕子去了,有再来的时候;杨柳枯了,"\
           "有再青的时候;桃花谢了,有再开的时候。"\
           "但是,聪明的,你告诉我,我们的日子为什么"\
           "一去不复返呢?——是有人偷了他们罢:那是谁?"\
           "又藏在何处呢?是他们自己逃走了罢:如今又到"\
           "了哪里呢?"
    p = doc.add_paragraph(text)    # 插入段落文字
    p.add_run('\n——选自')                # 添加文字块
    p.add_run('《匆匆》').bold = True   # 添加文字块,设置粗体
    p.add_run('朱自清').italic = True   # 添加文字块,设置斜体
    doc.add_page_break()       # 插入空白页 
    
    doc.save('./写入测试添加段落.docx')
    

    输出效果如下:

    在这里插入图片描述

    2.写入表格

    from docx import Document
    doc = Document()      # 新建一个空白文档
    doc.add_heading('一级标题:插入表格', level=1)  # 标题序号1~9
    table = doc.add_table(rows = 1,cols =3)
    
    # 数据
    records = (
        (3, '101', '数据1'),
        (7, '422', '数据2'),
        (4, '631', '数据3')
    )
    
    # 设置表格头
    hdr_cells = table.rows[0].cells
    hdr_cells[0].text = '标题1'
    hdr_cells[1].text = '标题2'
    hdr_cells[2].text = '标题3'
    for d1,d2,d3 in records:
        row_cells = table.add_row().cells
        row_cells[0].text = str(d1)
        row_cells[1].text = d2
        row_cells[2].text = d3
        
    doc.save('./写入测试添加表格.docx')
    

    输出效果如下:

    在这里插入图片描述

    3.写入图片

    from docx import Document
    from docx.shared import Cm
    
    doc = Document()      # 新建一个空白文档
    doc.add_picture('./字节杂谈头像.png', width=Cm(2.25))  # 插入图片,宽度设2.25cm
    
    doc.save('./写入测试插入图片.docx')
    

    输出效果如下:

    在这里插入图片描述

    四、小结

    python-docx库提供了python操作word文档的方式,对于重复性的操作可以实现word办公的自动化,使用下来比较轻量级。本文主要参考官方文档,做了一定的简化。对于深入的使用,还需要进一步研究官方文档。

    展开全文
  • Python自动化办公—DOCX库(一)

    千次阅读 2021-06-10 22:38:40
    今天学习了docx库,记录一下笔记,总结一下自己的理解,方便以后查阅。 首先要了解docx文档的基本结构。 python-docx将整个文章看作是一个Document对象。其基本结构如下: 每个Document包含多个代表“段落”的...

    今天学习了docx库,记录一下笔记,总结一下自己的理解,方便以后查阅。

    1. 首先要了解docx文档的基本结构。文档的基本结构
      python-docx将整个文章看作是一个Document对象。其基本结构如下:
      每个Document包含多个代表“段落”的Paragraph对象,存放在document.paragraphs中。每个Paragraph都有多个代表“行内元素”的Run对象,代表内容的text对象,和代表表格的tables对象。
    2. 读取docx文件中的表格数据
      读取word所有内容
    from docx import Document
    file=Document('F:\工作\自动化办公\时间序列分析论文要求.docx')
    for para in file.paragraphs:
        print(para.text)
    
    
    读取一级标题(读取二级标题时把Heading 1改为Heading 2,以此类推)
    
    from docx import Document
    file=Document('F:\工作\自动化办公\时间序列分析论文要求.docx')
    for para in file.paragraphs:
        if para.style.name == 'Heading 1':
            print(para.text)
    
    
    读取所有标题
    
    import re
    for para in file.paragraphs:
    	if re.match('^Heading \d+$',para.style.name):
    		print(para.text)
    
    读取正文
    
    from docx import Document
    file = Document('F:\work\自动化办公\时间序列分析论文要求.docx')
    for para in file.paragraphs:
    	if para.style.name=='Normal':
     		print(para.text)
    
    读取标题名称:
    
    from docx.enum.style import WD_STYLE_TYPE
    from docx import Document
    file = Document('F:\work\自动化办公\时间序列分析论文要求.docx')
    title=file.styles
    for i in title:
    	if i.type == WD_STYLE_TYPE.PARAGRAPH:
    		print(i.name)
    
    1. 写入Word文字
      添加标题
    from docx import Document
    file = Document()
    file.add_heading(text="时间序列分析论文要求",level=1)
    file.save('F:\work\自动化办公\时间序列分析论文要求2.docx')
    

    添加正文file.add_paragraph(text='', style=None)
    style是段落样式参数,默认为None
    添加分页符file.add_page_break()
    添加文字块 块一般在段落下一层,因此需要先添加段落‘

    a=file.add_paragraph('')#添加的文本是这一段的第一块
    a.add_run(text=None, style=None)  #这一段的第二块,添加的字体是普通字体
    a.add_run(text=None, style=None).bold=True#这一段的第三块,添加的字体是加粗
    a.add_run(text=None, style=None).italic=True#这一段的第四块,添加的字体是斜体
    

    段落的定位:para=file.paragraphs[i]
    指定段落处添加段落:原第二个段落变成第三个段落

    para= file.paragraphs[1] # 获取第二个段落
    para.insert_paragraph_before( text=None, style=None) # 在第二个段落处插入
    

    插入图片add_picture(image_path_or_stream, width=None, height=None)

    from docx.shared import Cm
    file.add_picture('路径', width = Cm(13), height = Cm(8))
    #或在单元格中添加图片 #表中分单元格,单元格里再分段,再分块
    run = file.tables[0].cell(0,0).paragraphs[0].add_run()
    run.add_picture('路径', width = Cm(13), height = Cm(8))
    

    设置图片对齐方式
    在插入图片时,经常使用run.add_picture()方法,本质上仍然是在段落中添加,所以,改变段落对齐对齐方式,效果也作用到图片上,这个时候的图片是单独一个段落。

    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入段落对齐包
    pic = file.paragraphs[i]#图片的位置
    pic.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置图片所在段落居中
    

    在WD_PARAGRAPH_ALIGNMENT可以实现LEFT、RIGHT、CENTER、JUSTY和DISTRIBUTE等5种对齐方式
    WD_PARAGRAPH_ALIGNMENT.LEFT # 左对齐
    WD_PARAGRAPH_ALIGNMENT.CENTER # 居中对齐
    WD_PARAGRAPH_ALIGNMENT.RIGHT # 右对齐
    WD_PARAGRAPH_ALIGNMENT.JUSTIFY # 两端对齐
    WD_PARAGRAPH_ALIGNMENT.DISTRIBUTE # 分散对齐

    图片删除
    图像是通过run对象的add_picture()来添加的,而run对象是段落的一部分,所以通过删除段落可以删除图像。

    pic = file.paragraphs[i]
    pic.clear()
    
    1. 表格
      添加表格 file.add_table(rows = 多少行, cols = 多少列)
      利用行,列双循环遍历到每个单元格

    添加表格行和列
    添加行:file.tables[i].add_row() # 表格最下方增加一行
    添加列:file.tables[i].add_column(width) # 表格最右侧增加一列,一定要写列宽

    删除表格中的行、列
    在表格中虽然单元格可以从column中的cells中来遍历,但是单元格是按行存储的
    删除表格中的行

    aa=file.tables[i].rows[i]
    aa._element.getparent().remove(aa._element) # 删除行
    

    删除表格中的列
    列的删除则不能像删除行那样使用对应的remove()函数,因为在_Column中没有定义_element,但可以采用单元格进行删除

    删除表格中的行
    删除列不能像删除行那样使用相应的_remove函数,因为在_Column中没有定义_element,因此删除列的使用可以删除相应的单元格来实现。

    bb=file.tables[i].columns[i]
    for run in bb.cells:
    	run._element.getparent().remove(run._element)
    

    通过cell的remove()方法可以删除表格的列,但是由于表格中的cell是按行存储,每行存储的cell的数量并没有变化,所以当删除单元格后,后续的单元格会补上。

    表格的删除file.tables[i]._element.getparent().remove(file.tables[i]._element)

    设置单元格的值
    表格中单元格的值有两种赋值方式,一种是直接为cell.text属性赋值来实现,另外一种是通过获取或者添加单元格中的段落,然后使用段落中的text属性赋值实现

    from docx import Document
    from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入段落对齐方式
    tab=file.add_table(i,j)
    tab.cell(i,j).text=' '
    
    para=tab.cell(i,j).paragraphs[i]
    para.text=' '
    para.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置段落居中
    #第一种赋值方式,只能更改单元格的值,无法设置单元格中数据的样式,并且整个单元格只能是一个段落;
    #而第二种赋值方式,使用了段落,在单元格赋值的基础上还能增加新的段落,并设置段落的样式和字体的样式
    

    删除单元格数据可以使用赋值的方法,是单元格的数据为空即可。

    展开全文
  • python docx库的简单使用

    千次阅读 2020-06-09 17:32:54
    docx库的下载指令: pip install python-docx 1、文档 创建文档 from docx import Document document = Document() 保存文档 document.save('test.docx') 打开现有文档 document = Document('filename.docx') # ...

    docx库的下载指令:

    pip install python-docx
    

    1、文档

    创建文档

    from docx import Document
    document = Document()
    

    保存文档

    document.save('test.docx')
    

    打开现有文档

    document = Document('filename.docx')  # 打开
    document.save('new-filename.docx')  #保存文档
    

    如果使用相同的文件名来打开和保存文件,将默认覆盖原文件

    打开file-like文档

    f = open('a.docx', 'rb')
    document = Document(f)
    f.close()
    
    or
    
    with open('a.docx', 'rb') as f:
    	source_stream = StringIO(f.read())
    document = Document(source_stream)
    source_stream.close()
    
    target_stream = StringIO()
    document.save(target_stream)
    

    2、段落

    添加段落

    paragraph = document.add_paragraph("This is the first paragraph")
    

    作用:在文档末尾添加一个新的段落,并返回该段落的引用。

    prior_paragraph = paragraph.insert_paragraph_before("such a good boy")
    

    作用:以某个段落为基准,在这个段落前添加一个新的段落。

    添加段落风格

    paragraph.style = "List Bullet"
    

    这种风格使得段落看起来像子弹头。

    在段落中添加内容

    run = paragraph.add_run("it is wonderful")
    run = paragraph.add_run("it is wonderful", "Emphasis")  # 创建时指定风格
    

    这还将返回一个对字符串"it is wonderful"的引用,我们可以对这个字符串进行格式的设置。

    run.bold = True  # 设置为粗体
    run.italic = True  # 设置为斜体
    run.style = "Emphasis" # 创建后设置风格
    

    设置段落格式

    段落的对齐方式

    from docx.enum.text import WD_ALIGN_PARAGRAPH
    
    paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 设置为居中对齐
    

    段落的缩进

    paragraph.paragraph_format.left_indent = Inches(0.5)  # 向左缩进
    paragraph.paragraph_format.right_indent = Inches(0.5)  # 向右缩进
    paragraph.paragraph_format.first_line_indent = Inches(0.5)  #第一行缩进
    

    段落间隔

    from docx.shared import Pt
    
    paragraph.paragraph_format.space_before = Pt(18)
    paragraph.paragraph_format.space_after = Pt(12)
    

    行间距

    paragraph.paragraph_format.line_spacing = Pt(18)
    

    分页属性:

    keep_together:使整个段落出现在同一页上,如果该段落可能被分割成两页,则在该段之前加入分页符。

    keep_with_next:保持与下一段保持一个段落在相同的页面。

    page_break_before:使用分页符将段落放置在新页的顶部。

    widow_control:避免将该段的第一行或最后一行放在与该段其余部分分开的页面上。

    paragraph.paragraph_format.keep_together = True
    paragraph.paragraph_format.keep_with_next = False
    

    3、标题

    添加标题

    document.add_heading('My first doc created by python')
    

    作用:添加一个顶级标题。

    标题共有9级,可通过level属性来指定级数,如:

    document.add_heading('My first doc created by python', level=3)
    

    会创建一个3级标题。

    若指定级别为0,则将创建一个段落

    4、分页符

    document.add_page_break()
    

    作用:无论所在页面是否已满,都将转到一个新的页面上

    5、表格

    添加表格

    table = document.add_table(rows=2, cols=2)
    

    作用:创建一个2行,2列的表格(可视作一个二维数组)

    获取引用

    cell = table.cell(0,1)  # 获取第一行第二列的元素的引用
    row = table.rows[1]  # 获取第二行的引用
    cell = row.cells[1] #  获取第二行(即上一行代码所获得的行)的第二个元素
    

    方法

    cell.text = 'hello, good morning'  # 修改单元格的文本
    row_count = len(table.rows)  # 统计表格行数
    row = table.add_row()  # 添加新的一行
    table.style = 'LightShading-Acccent1'  # 表格样式
    

    6、图片

    添加图片

    document.add_picture('snow.jpg')
    

    添加了一张文件名为"snow.jpg"的图片

    控制图片大小

    form docx.shared import Inches
    
    document.add_picture('snow.jpg', width=Inches(1))
    

    7、字体设置

    from docx.shared import Pt
    from docx.shared import RGBColor
    from docx.enum.dml import MSO_THEME_COLOR
    
    
    run = document.add_paragraph().add_run()
    font = run.font
    font.name = 'Calibri'  #字体种类
    font.size = Pt(12)   #字体大小
    font.bold = True  # 粗体
    font.italic = False  # 斜体
    font.underline = True  # 下划线
    font.color.rgb = RGBColor(0x42, 0x24, 0xE9)  # 字体颜色
    font.clor.theme_color = MSO_THEME_COLOR.ACCENT_1  # 设置配色
    font.color.rgb = None  # 默认颜色
    

    8、section属性

    section的使用

    sections = document.sections
    section = sections[0]
    

    section的属性

    • start_type:这个部分之前的断开类型

    • orientation:页面方向

    • page_width:页面宽度

    • page_height:页面高度

    • left_margin:左边距

    • right_margin:右边距

    • top_margin:上边距

    • bottom_margin:下边距

    • gutter

    • header_distance

    • footer_distance

    section.start_type = WD_SECTION.ODD_PAGE
    section.orientation = WD_ORIENT.LANDSCAPE
    section.page_width = new_width
    section.page_height = new_height
    section.left_margin = Inches(1.5)
    section.right_margin = Inches(1)
    

    9、页眉和页脚

    获取

    section = document.sections[0]
    header = section.header
    

    使用

    paragraph = header.paragraphs[0]
    paragraph.text = "Title of my document"  # 在页眉添加内容
    paragraph.text = "Left Text\tCenter Text\tRight Text"  #制表符用于分隔左、中和右对齐的标题内容
    paragraph.style = document.styles['header']
    

    删除

    header.is_linked_to_previous = True
    
    展开全文
  • python使用 docx 操作 docx 格式文件

    万次阅读 2018-12-01 23:49:33
    docx 文章结构:  一、docx 基本用,创建 docx 文件并添加数据  二、深入理解文本格式(format),并设置所格式属性(attribute)  三、深入理解样式(styles),以及如何运用样式  四、常用样式(style...
  • python的docx库使用教程

    千次阅读 2021-02-24 11:29:53
    python的docx库使用教程 1、打开及保存文件: from docx import Document document = Document('test.docx') document.save('test.docx') 2、添加文本: document.add_paragraph('test text') 3、调整文本位置格式...
  • Python办公自动化 - docx库的使用1 简介1.1 docx库1.2 docx文件结构2 读取2.1 读取文件 docx.Document()2.2 读取段落 doc.paragraphs2.3 读取文字块 doc.runs3 编辑3.1 创建文档3.2 添加标题3.3 添加段落3.4 添加...
  • 使用pip install python-docx安装python-docx库失败,python版本为3.10.2。 解决办法: 1.先安装docx库 2.再安装python-docx库 3.安装成功
  • docx库的安装

    2020-04-26 08:51:42
    详解python中docx库的安装过程python中docx库的简介导入docx的方法总结 python中docx库的简介 python-docx包,这是一个很强大的包,可以用来创建docx文档,包含段落、分页符、表格、图片、标题、样式等几乎所有的...
  • 要获取word文档中的图片文件。...(1)zip(2)docx库 上一篇博文已经提过,word本质上也是一个压缩文件,word文档中的img文件可以在解压后的文件中找到。本篇,主要介绍使用docx来实现word文档中img文件的提取。...
  • python,解压后可用。 资源全名:pdf2docx-0.3.0-py3-none-any.whl
  • 单位要写交流报告,上交材料要公文格式,但是打印出来要打印在A5纸张上,为了快速将公文格式转为可打印在A5纸张上的格式,使用python-docx库实现。 项目目标 通过项目,可批量实现以下功能: 修改纸张大小 修改页...
  • docx 文章结构:  一、docx 基本用,创建 docx 文件并添加数据  二、深入理解文本格式(format),并设置所格式属性(attribute)  三、深入理解样式(styles),以及如何运用样式  四、常用样式(style...
  • DOCX库操作

    千次阅读 2019-02-28 16:45:27
    引入docx库 from docx import Document 1、文档创建 doc=docx.Document(path=None) 其中path是docx文件的路径。如果不指定,则新建文档。 2、文档编辑 (1)添加标题 doc.add_heading(text=u'', level=1) 标题段落...
  • 我尝试着在github上搜了下,找到一个pdf2docx库可以实现批量转换功能。 特性 支持的pdf转docx的功能有 解析并重新创建段落 [x] 水平方向上的文字:从左到右 [x] 垂直方向的文字:从下到上 [x] 字体样式,例如 字体...
  • 导入docx库 from docx import Document 实例化Document # 实例化 document = Document() # 也可以用来读取文本 document = Document('文件路径') # len会显示有几个段落 print(len(document.paragraps)) # ...
  • docx库不仅可以提取word文档中的图片,也可以给文档添加图片。本篇介绍如何添加一张图片到word文档中。
  • DuckX DuckX是用于创建Office docx文件的DuckX帮助您在C ++中快速使用docx文件。 状态文档(docx)[Word]读取/写入/编辑DuckX创建,读取和写入Microsoft Office Word docx文件。 本文档中提供了更多信息。 DuckX是...
  • python-docx是用于创建和更新Microsoft Word(.docx)文件的Python。​ 日常需要经常处理Word文档,发现了一个新的Python包:Python-docx,处理docx十分方便。 而且这个包和pandas包结合使用,可以在word插入excel...
  • python-docx库中文说明

    千次阅读 2019-12-30 13:23:52
    from docx import Document from docx.shared import RGBColor from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.shared import Pt from docx.oxml import OxmlElement from docx.oxml.ns import qn fro...
  • 1、安装所需要的包docx,若直接pip installdocx安装模块docx,运行代码可能会报错:moduleNotFoundError:No module named 'exceptions' 解决方案:卸载原来安装的docx: pip uninstall docx 安装python-docx模块...
  • python 3.8x中,使用docx库的时候出错解决办法。使用的时候,出现: moduleNotFoundError:No module named 'exceptions python3.x版本移除了exceptions模块,但是docx包中引用了该模块 安装最新版python-docx...
  • Python+Word办公自动化初步 01—— Python-docx 简介与使用初体验,宰牛刀出现 ! 综合实战 01:一键批量自动生成指定格式的公文,原来一天的工作现在2分钟搞定! 综合实战 02:自动批量生成学员放假通知单,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,560
精华内容 13,024
关键字:

docx库

友情链接: i830_context.rar