python打开已有docx文档_python-docx读取doc,docx文档

1.将doc转为docx

python3.8中win32com 要安装pypiwin32 pip install pypiwin32

from win32com import client as wc

word = wc.Dispatch("Word.Application")

doc = word.Documents.Open(路径+名称.doc)

doc.SaveAs(路径+名称.docx, 12) 12为docx

doc.Close()

word.Quit()

2.读取段落

import docx

docStr = Document(docName) 打开文档

for paragraph in docStr.paragraphs:

parStr = paragraph.text

--》paragraph.style.name == 'Heading 1' 一级标题

--》paragraph.paragraph_format.alignment == 1 居中显示

--》paragraph.style.next_paragraph_style.paragraph_format.alignment == 1 下一段居中显示

--》paragraph.style.font.color

3.读取表格

numTables = docStr.tables

for table in numTables:

#行列个数

row_count = len(table.rows)

col_count = len(table.columns)

for i in range(row_count):

row = table.rows[i].cells

i行j列内容:row[j].text

或者:

row_count = len(table.rows)

col_count = len(table.columns)

for i in range(row_count):

for j in range(col_count):

print(table.cell(i,j).text)

4.按样式读取

读取标题

for p in doc.paragraphs:

if p.style.name=='Heading 1':

print(p.text)

import re

for p in doc.paragraphs:

if re.match("^Heading \d+$",p.style.name):

print(p.text)

读取正文

for p in doc.paragraphs:

if p.style.name=='Normal':

print(p.text)

5.获取docx支持的样式

from docx.enum.style import WD_STYLE_TYPE

for i in s:

if i.type==WD_STYLE_TYPE.PARAGRAPH:

print(i.name)

6.设置首行缩进

from docx.shared import Inches,Pt

par2 = doc.add_paragraph('段落文本')

# 左缩进,0.5 英寸

par2.paragraph_format.left_indent = Inches(0.5)

# 右缩进,20 磅

par2.paragraph_format.right_indent = Pt(20)

# 首行缩进

par2.paragraph_format.first_line_indent = Inches(1)

查看首行缩进单位

from docx import Document

from docx.shared import Inches

from docx.oxml.ns import qn

from docx.shared import Cm, Pt

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

from docx.shared import RGBColor

myDocument = Document('2020年建交集团3月分析报告.docx')

for paragraph in myDocument.paragraphs:

print(paragraph.paragraph_format.first_line_indent)

print(dir(paragraph))

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值