python 操作word
#docx## 只能操作docx文件
from docx import Document
import docx
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH #设置对象居中、对齐等。
from docx.enum.text import WD_TAB_ALIGNMENT,WD_TAB_LEADER #设置制表符等
from docx.shared import Inches #设置图像大小
from docx.shared import Pt #设置像素、缩进等
from docx.shared import RGBColor #设置字体颜色
from docx.shared import Length #设置宽度
from docx import Document
from docx.shared import Inches
from docx.shared import Cm
#打开word文档
document = Document(path_sqb)
#获取第二个表格
table = document.tables[2]从0开始计算
#获取单元格内容
text = table.cell(15, 5).text
#给单元格赋值,并赋予字体大小
def update_text(table, row, col, text):
table.cell(row, col).text = ‘’#设置成空值,后面只能追加记录
run = table.cell(row, col).paragraphs[0].add_run(text)
run.alignment = 0
# run.bold = True
run.font.name = ‘宋体’
table.cell(row, col).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
run.font.size = Pt(10.5)
update_text(table, 2, 5, qlrmc1)
table.cell(row, col).text = ‘’#直接给单元格赋值
#循环获取内容
for paragraph in doc.paragraphs:
print(paragraph.text)
#添加照片到word
doc.add_picture(r"G:\\6Tipdm\\7python办公自动化\\concat_word\\sun_wu_kong.png",width=shared.Cm(5),height=shared.Cm(5))
#插入表格
table1 = doc.add_table(rows=5,cols=3)
#给表格插入一行
row_cells = table.add_row().cells
#合并单元格
#给单元格赋值并设置格式
table.cell(5 + tem * 2, 0).text = jzdh#赋值
table.cell(5 + tem * 2, 0).paragraphs[0].paragraph_format.alignment = WD_TABLE_ALIGNMENT.CENTER#
table.cell(5 + tem * 2, 0).alignment = WD_TABLE_ALIGNMENT.CENTER#设置居中样式
table.cell(0, 0).merge(table.cell(2, 0))
#替换内容
def replace_text(doc, old_text, new_text):
for p in doc.paragraphs:
if old_text in p.text:
inline = p.runs
for i in inline:
if old_text in i.text:
text = i.text.replace(old_text, new_text)
i.text = text
replace_text(document, ‘ZDDM’, zddm)
document.save(path_sqb)#保存文件
##
##win32com
##
import win32com.client
word=win32com.client.gencache.EnsureDispatch(‘Word.Application’)
doc=word.Documents.Add()
doc=word.Documents.Open(‘你的Word文件路径’)
后台运行,不显示,不警告
word.Visible=False
word.DisplayAlerts=False
表格操作
table = doc.Tables(2)
table.Cell(1, 2).Range.Text = ‘lx’
doc.Tables[0].Rows[0].Cells[0].Range.Text =‘123123’
worddoc.Tables[0].Rows.Add() # 增加一行
正文文字替换
w.Selection.Find.ClearFormatting()
w.Selection.Find.Replacement.ClearFormatting()
w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)