欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

python-docx读取文档内容(python读取docx文件)

数码知识

孙梦嘉优秀作者

原创内容 来源:小居数码网 时间:2024-07-30 09:34:01 阅读() 收藏:56 分享:42

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有1143个文字,大小约为4KB,预计阅读时间3分钟。

Python读写docx文件Python读写word文档有现成的库可以处理

python读取docx文件

Python读写docx文件

pip install python-docx安装一下。

https://python-docx.readthedocs.io/en/latest/

学习官网: http://python-docx.readthedocs.org/en/latest/

importdocx#新建,打开,保存文件。importdocx#新建文档doc_new=docx.Document()#保存文档doc_new.save('demo.docx')#读取文档doc=docx.Document('demo.docx')

python-docx包含了word文档的相关对象

  • doc.paragraphs #段落
  • doc.tables #表格
  • doc.sections #节
  • doc.styles #样式
  • doc.inline_shapes #内置图形
  • 段落样式

    #插入段落。doc.add_paragraph('第一段',style=None)#插入一个段落,文本为“第一段”#默认是不应用样式,这里也可以不写style参数,或者指定一个段落样式doc.add_paragraph('第二段',style='Heading2')#这些样式都是word默认带有的样式,可以直接罗列出来有哪些段落样式print([s.nameforsindoc.stylesifs.type==1])

    段落样式 :

    ['Normal', 'Header', 'Footer', 'Heading 1', 'Heading 2', 'Heading 3', 'Heading 4', 'Heading 5', 'Heading 6', 'Heading 7', 'Heading 8', 'Heading 9', 'No Spacing', 'Title', 'Subtitle', 'List Paragraph', 'Body Text', 'Body Text 2', 'Body Text 3', 'List', 'List 2', 'List 3', 'List Bullet', 'List Bullet 2', 'List Bullet 3', 'List Number', 'List Number 2', 'List Number 3', 'List Continue', 'List Continue 2', 'List Continue 3', 'macro', 'Quote', 'Caption', 'Intense Quote', 'TOC Heading']

    #新增样式fromdocx.sharedimportRGBColor#这个是docx的颜色类#新建文档#新增样式(第一个参数是样式名称,第二个参数是样式类型:1代表段落;2代表字符;3代表表格)style=doc.styles.add_style('stylename1',2)#设置具体样式(修改样式字体为蓝色,当然还可以修改其他的)style.font.color.rgb=RGBColor(0x0,0x0,0xff)

    字符样式

    #字符样式#插入一个空白段落p=doc.add_paragraph('')#写入p.add_run('毛利1',style="Heading1Char")p.add_run('毛利2')p.add_run('毛利3',style="Heading2Char")#这样一个段落就应用了两个字符样式,中间“毛利”就没应用样式print(p.text)#输出结果是u'123456789'也还是连续的

    毛利1毛利2毛利3

    #设置字体r=p.add_run('毛利4')r.font.bold=True#加粗r.font.italic=True#倾斜

    表格操作

    #表格操作#新建一个2x3的表格,style可以不写table=doc.add_table(rows=2,cols=3,style=None)#可以用table的rows和columns得到这个表格的行数和列数print(len(table.rows))print(len(table.columns))#遍历表格rowsforindex,rowinenumerate(table.rows):row.cells[0].text='毛利{}'.format(index)print(row.cells[0].text)#新增行或列table.add_row()table.add_column(width=1)

    2

    3

    毛利0

    毛利1

    <docx.table._Column at 0x17a7f928128>

    官方例子

    #官方例子fromdocximportDocumentfromdocx.sharedimportInchesdocument=Document()document.add_heading('DocumentTitle',0)#段落p=document.add_paragraph('Aplainparagraphhavingsome')p.add_run('bold').bold=Truep.add_run('andsome')p.add_run('italic.').italic=True#document.add_heading('Heading,level1',level=1)document.add_paragraph('Intensequote',style='IntenseQuote')document.add_paragraph('firstiteminunorderedlist',style='ListBullet')document.add_paragraph('firstiteminorderedlist',style='ListNumber')#document.add_picture('monty-truth.png',width=Inches(1.25))records=((3,'101','Spam'),(7,'422','Eggs'),(4,'631','Spam,spam,eggs,andspam'))table=document.add_table(rows=1,cols=3)hdr_cells=table.rows[0].cellshdr_cells[0].text='Qty'hdr_cells[1].text='Id'hdr_cells[2].text='Desc'forqty,id,descinrecords:row_cells=table.add_row().cellsrow_cells[0].text=str(qty)row_cells[1].text=idrow_cells[2].text=descdocument.add_page_break()document.save('demo1.docx')

    效果如下图所示

    总结

    上面就是小居数码小编今天给大家介绍的关于(python读取docx文件)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

    94%的朋友还想知道的:

    (368)个朋友认为回复得到帮助。

    部分文章信息来源于以及网友投稿,转载请说明出处。

    本文标题:python-docx读取文档内容(python读取docx文件):http://sjzlt.cn/shuma/152792.html

    猜你喜欢