PYTHON操作WORD

合集下载

详解python-docx处理Word必备工具

详解python-docx处理Word必备工具

详解python-docx处理Word必备⼯具我的理解为什么会⽤到python-docx,因为近段时间下载了⼤量⽹⽂,但格式都是html的,我个⼈习惯使⽤word处理⽂字,于是就想法设法把html⽂档转换为word,⾸先要考虑的问题就是从html中提取的⽂字怎么存word⾥呢,之前⽤了pandoc直接转换,带转换后的效果太不理想,没什么格式,不符合我这种对word格式有严格要求强迫症⼈的需要,于是就到处搜寻其他⽅法,终于功夫不负有⼼⼈,通过⼏天研究python-docx,感觉很适合我,就⼀边分析html⽂档,⼀边思考怎么⽤python-docx存想要的格式word,因为我的word排版,⼀般习惯页⾯要设置成5678页边距的,⼤⼩A4的,正⽂主标题⽅正⼩标宋,其他标题要么⿊体,要么加粗,正⽂要⾸⾏缩进2字符仿宋_GB2312,页脚要加页码显⽰,⼤概这些样式。

python-docx 创建⼀篇⽂档也差不多是这么个思路,⼀篇⽂档也就是Document()对象⾸先要分成不同的节,也就是由sections对象控制,然后每节中⼜分成不同的段落paragraphs对象,每段⼜由不同的块run对象组成,针对不同的节(section)可以设置页⾯的⼀些属性,针对不同的段落(paragraph),可以设置间距和缩进、换⾏和分页等,针对不同块(run)可以设置字体的字型、颜⾊、⼤⼩等。

可以先设置好整篇⽂章的⼤致段落、字体等格式,然后针对不同段落和块可以单独再进⾏设置。

我主要讲讲⾃⼰⽤到的⼏个内容是怎么设置的。

安装库:pip install python-docx⽤到的库from docx import Document(⽂档读写)from docx.shared import Pt,Cm,Inches (字体⼤⼩,不⼀定全⽤到)from docx.oxml.ns import qn(设置字体格式,分栏等⽤到)from docx.shared import RGBColor (设置字体颜⾊)from docx.enum.text import WD_ALIGN_PARAGRAPH (设置对其⽅式)from docx.enum.section import WD_ORIENTATION (纸张⽅向⽤到)设置⼤致格式这样设置完了之后有⼀个好处就是,后往⾥⾯写⼊⽂档的时候回⾃动按这个格式,如果有需要改动的再单独写⼊时改。

Python操作word常见方法示例【win32com与docx模块】

Python操作word常见方法示例【win32com与docx模块】

Python操作word常见⽅法⽰例【win32com与docx模块】本⽂实例讲述了Python操作word常见⽅法。

分享给⼤家供⼤家参考,具体如下:这⾥介绍两种⽅式:使⽤win32com使⽤docx1. 使⽤win32com扩展包只对windows平台有效代码:# coding=utf-8import win32comfrom win32com.client import Dispatch, DispatchExword = Dispatch('Word.Application') # 打开word应⽤程序# word = DispatchEx('Word.Application') #启动独⽴的进程word.Visible = 0 # 后台运⾏,不显⽰word.DisplayAlerts = 0 # 不警告path = 'G:/WorkSpace/Python/tmp/test.docx' # word⽂件路径doc = word.Documents.Open(FileName=path, Encoding='gbk')# content = doc.Range(doc.Content.Start, doc.Content.End)# content = doc.Range()print '----------------'print '段落数: ', doc.Paragraphs.count# 利⽤下标遍历段落for i in range(len(doc.Paragraphs)):para = doc.Paragraphs[i]print para.Range.textprint '-------------------------'# 直接遍历段落for para in doc.paragraphs:print para.Range.text# print para #只能⽤于⽂档内容全英⽂的情况doc.Close() # 关闭word⽂档# word.Quit #关闭word程序2. 使⽤docx扩展包优点:不依赖操作系统,跨平台安装:pip install python-docx代码:import docxdef read_docx(file_name):doc = docx.Document(file_name)content = '\n'.join([para.text for para in doc.paragraphs])return content创建表格# coding=utf-8import docxdoc = docx.Document()table = doc.add_table(rows=1, cols=3, style='Table Grid') #创建带边框的表格hdr_cells = table.rows[0].cells # 获取第0⾏所有所有单元格hdr_cells[0].text = 'Name'hdr_cells[1].text = 'Id'hdr_cells[2].text = 'Desc'# 添加三⾏数据data_lines = 3for i in range(data_lines):cells = table.add_row().cellscells[0].text = 'Name%s' % icells[1].text = 'Id%s' % icells[2].text = 'Desc%s' % irows = 2cols = 4table = doc.add_table(rows=rows, cols=cols)val = 1for i in range(rows):cells = table.rows[i].cellsfor j in range(cols):cells[j].text = str(val * 10)val += 1doc.save('tmp.docx')读取表格# coding=utf-8import docxdoc = docx.Document('tmp.docx')for table in doc.tables: # 遍历所有表格print '----table------'for row in table.rows: # 遍历表格的所有⾏# row_str = '\t'.join([cell.text for cell in row.cells]) # ⼀⾏数据# print row_strfor cell in row.cells:print cell.text, '\t',print更多关于Python相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》及《》希望本⽂所述对⼤家Python程序设计有所帮助。

python处理word文档

python处理word文档

python处理word⽂档python 处理 word1. 简介在web开发过程中,经常需要导出⼀些word⽂档,⽐如运营⽉报、进货单、收据等。

它们的特点是格式都是⼀致的,只是需要不同的数据进⾏填充docx 和 docxtpl 是⽐较常见的处理 word ⽂件的python库。

其中前者⽤于创建⼀个包含段落、图⽚、表格、页眉等元素⽂档,后者使⽤类似 jinja2 的⽅式从模板⽂档⽣成新的⽂档2. 安装pip install python-docxpip install docxtpl # docxtpl 库会依赖jinja23. 使⽤情景1:使⽤python-docx从⽆到有创建⼀个docx⽂档,很少这样做,⼏乎不⽤关注情景2:使⽤docxtpl库对已有的docx⽂档模板进⾏数据填充,极为常见处理docx模板⽂档在docx⽂档中直接使⽤jinja2语法,{{ var }},即可将数据render进去循环是⾼级点的语法,可百度,并⽆特别难之处对应的主要python代码,⼤同⼩异,在py脚本中将数据彻底处理好,render仅做简单数据填充。

from docxtpl import DocxTemplatedoc = DocxTemplate("my_word_template.docx")context = {'company_name' : "World company"}doc.render(context)doc.save("generated_doc.docx")4. 结合python框架的⽰例代码Djangodef export_monthly_report(request, year, index):context = {} # 填充数据doc = DocxTemplate(app.root_path + '/templates/report_monthly.docx')target_filename = 'monthly_{}_{}.docx'.format(year, index)doc.render(context)file_stream = io.BytesIO()doc.save(file_stream)file_stream.seek(0)response = HttpResponse(file_stream.getvalue(), # use the stream's contentscontent_type="application/vnd.openxmlformats-officedocument.wordprocessingml.document",)response["Content-Disposition"] = 'attachment; filename = "{}"'.format(target_filename)response["Content-Encoding"] = "UTF-8"return responseflaskimport iofrom flask import send_filedef export_monthly_report(year, index):context = {} # 填充数据doc = DocxTemplate(app.root_path + '/templates/report_monthly.docx')target_filename = 'monthly_{}_{}.docx'.format(year, index)doc.render(context)file_stream = io.BytesIO()doc.save(file_stream)file_stream.seek(0)return send_file(file_stream, as_attachment=True, attachment_filename=target_filename)。

用python来操作word文件(使用docx库)

用python来操作word文件(使用docx库)

⽤python来操作word⽂件(使⽤docx库)实例⼀:from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPHfrom docx.oxml.ns import qn # 中⽂格式from docx.shared import Pt # 磅数from docx.shared import Inches # 图⽚尺⼨import timetoday = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y="年", m="⽉", d="⽇")price = input("请输⼊今⽇价格:")company_list = ["客户1", "客户2", "客户3", "客户4", "客户5", "客户6", "客户7", "客户8", "客户9", "客户10"]for i in company_list:document = Document()document.styles["Normal"] = u"微软雅⿊"document.styles["Normal"].font.size = Pt(14)# 设置⽂档的基础字体document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅⿊')# 设置⽂档的基础样式document.add_picture("d:/⽆标题.png", width=Inches(6))# 在⽂件最上头插⼊图⽚作为⽂件红头,宽度为6英⼨p1 = document.add_paragraph()# 初始化建⽴第⼀个⾃然段p1.alignment = WD_ALIGN_PARAGRAPH.CENTER# 对齐⽅式为居中,没有这句默认左对齐run1 = p1.add_run("关于下达%s产品价格的通知" % (today))# 这⾥是第⼀段的内容 = "微软雅⿊"# 设置西⽂字体run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅⿊')# 设置中⽂字体run1.font.size = Pt(21)# 设置字体⼤⼩为21磅run1.font.bold = True# 设置加粗p1.space_after = Pt(5)# 设置段后距离5磅p1.space_before = Pt(5)# 设置段后距离5磅p2 = document.add_paragraph()run2 = p2.add_run(i + ": ")# 这⾥是对客户的称呼 = "仿宋_GB2312"run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')run2.font.size = Pt(16)run2.font.bold = Truep3 = document.add_paragraph()run3 = p3.add_run(" 根据公司安排,为提供优质客户服务,我单位现将价格通知如下。

python docx库使用手册

python docx库使用手册

标题:深度探索Python Docx库:使用手册一、前言Python Docx库是一款功能强大的文档处理库,它能够帮助用户轻松地创建、修改和格式化Word文档。

本文将深入探讨Python Docx库的使用手册,帮助读者全面掌握该库的功能和用法。

二、基本介绍Python Docx库是一个基于Python的第三方库,可以用来操作Microsoft Word文档。

它提供了丰富的API,使得用户可以轻松地进行文档的创建、修改和格式化。

无论是简单的文本替换,还是复杂的表格插入,Python Docx库都能够满足用户的需求。

三、安装和环境配置在开始使用Python Docx库之前,首先需要在Python环境中安装该库。

用户可以通过pip工具来进行安装,命令如下:```pip install python-docx```安装完成后,就可以在Python脚本中导入该库并开始使用了。

四、基本功能1. 创建文档使用Python Docx库可以轻松创建新的Word文档。

用户可以指定文档的标题、段落、样式等信息,同时还可以插入图片、表格等元素。

2. 修改文档已有的Word文档也可以通过Python Docx库进行修改。

用户可以添加新的段落、修改文本内容、调整格式等操作,使得文档符合自己的需求。

3. 格式化文档Python Docx库提供了丰富的格式化功能,用户可以对文档中的文本、段落、表格等元素进行各种样式的设置,包括字体、颜色、对齐方式等。

五、高级功能1. 操作表格Python Docx库支持对Word文档中的表格进行操作,用户可以插入、删除、合并表格,设置单元格的样式等。

2. 处理图片用户可以通过Python Docx库在文档中插入图片,并对图片进行调整、格式化等操作。

3. 处理目录通过Python Docx库,用户可以轻松地为文档添加目录,同时可以自动更新目录中的内容。

六、总结回顾Python Docx库是一款功能强大且易于使用的文档处理库,它为用户提供了丰富的API和灵活的功能,可以满足用户在文档处理方面的各种需求。

使用Python-docx库操作Word文档

使用Python-docx库操作Word文档


Python-docx库简介
Python可以利用python-docx库处理Word文档,处理方式是面向对象 的。也就是说,python-docx库把Word文档、文档中的段落、文本、字体 修饰等都看做对象,使用python-docx库提供的对象方法和属性,即可对 Word文档的内容进行处理。
python-docx库提供了文档段落的属性,可以很方便 地把Word长文档的各级标题快速地提取出来。
12

提取文档的各级标题
默认情况下,Word样式是以中文命名的,在程序中需要知 道每个样式的英文命名,可以在‘文件’菜单 --‘选项’命 令中设置:
可以看出,docx库是按照Word文 档的段落来读取数据。paragraphs 对象表示一个段落,text对象表示 段落中的文字内容。
10
程序运行结果
Office高级应用
使用python-docx库操作Word文档 编程提取文档的各级标题

提取文档的各级标题
在Word文档排版过程中,按照系统提供的样式,或者自定义样 式对各级标题进行设置。一般来说,同级标题其样式是相同的。
程序运行结果office高级应用使用pythondocx库操作word文档编程提取文档的各级标题12提取文档的各级标题在word文档排版过程中按照系统提供的样式或者自定义样式对各级标题进行设置
Office高成都信息工程大学计算中心
Document:产生基于word文档的实例对象 paragraphs:表示word文档中的段落 text:表示段落中的文字内容
8

9

读取word文档的内容
文档内容
Python代码

读取Word文档的内容

如何使用Python批量创建Word模板

如何使用Python批量创建Word模板

如何使用Python批量创建Word模板在日常工作中我们经常需要重复性地将同一份内容的Word文档资料发送给多个不同客户,此时Word文档内容可能只有客户署名不同、或者只有部分关键信息不同。

此时如果采用传统的工作方法我们可能需要反复地打开不同Word 文档,然后修改文档里面的内容,这样的话就需要花大量时间来完成重复性工作。

针对此问题,我们如果使用Python进行简单的编程就有可能使重复性工作快速完成。

本文就以实例针对如何使用Python批量创建Word模板进行简单介绍。

本文需要完成Word模板任务背景如下:小姚在一家超市工作,每天上午都需要将Word版苹果今日价格通知信息发送给100家客户,每份通知文档中只有价格、客户、日期不相同。

为了减少重复性工作,本次需要制作的Word模板文档内容如下:**年**月**日苹果价格通知Dear 客户1:根据目前市场情况,今日我司苹果售价拟定为5元每斤,特此通知。

如有任何疑问可随时与我联系,谢谢!联系人:小姚电话:1234567890 在使用Python创建Word模板之前,我们先了解一下Word文档逻辑层次结构图:由以上两个图表可知:文档是由多个段落组成,段落是由多个文字组成。

所以在我们采用传统工作方法创建新Word 模板时操作流程基本如下表所示:总结了Word 模板创建的基本流程,接下来我们就可以参考该流程使用Python 代码语句编程实现批量创建Word 模板,具体操作步骤如下: 第一步. 导入Python-docx 模块,模块导入基本步骤如下:导入模块操作界面如下图表1~图表4所示:D o c u m e n tParagraph 1Run 1Run 2Run ...Run nParagraph 2Run 1Run 2Run ...Run n Paragraph ...Run 1Run 2Run ...Run n Paragraph nRun 1Run 2Run ...Run n整个文档属性(默认字体、默认格式)段落属性(段落间距、对齐方式等)文字属性(字体、字号、加粗等)Step1.新建Word 文档Step2.打开Word 文档Step3. 设置段落Step4. 输入内容Step5. 设置字体Step6. 保存文档Step1.点击File Step2.设置SettingsStep3.设置ProjectInterpreterStep4.点击右上角“+”Step5.搜索Python-docxStep6.点击InstallPackageStep7.显示“Package ‘Python-docx ’installed successfully ”即安装完成图表1 图表 2图表 3图表 4第二步.新建Python file,进入Python代码编辑界面;第三步.编辑Python代码,由于本次需要生成Word模板只有四个段落,参考前面介绍的Word文档逻辑层次结构,可知本次代码编写流程顺序基本由以下几个部分组成第四步. 编写完成的完整代码语句如下:from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPH from docx.shared import Pt第一部分:导入所需模块•1.导入文档模块•2.导入段落设置模块•3.导入字体设置模块•4.导入中文格式设置模块• 5.导入时间模块第二部分:文档内容变量定义•1.输入今日价格•2.定义客户列表• 3.获取今日时间第三部分:文档初始化•1.针对每个客户生成文档•2.文档初始化• 3.设置文档默认字体、样式第四部分:正文内容设置•1.分别新建4个段落•2.输入4个段落内容•3.设置每个段落属性•4.设置每个段落字体属性第五部分:保存文档•文件按照要求文件名保存至固定路径from docx.oxml.ns import qnimport timeprice = input('请输入今日价格:')company_list = ['客户1', '客户2', '客户3', '客户4', '客户5', '客户6', '客户7', '客户8', '客户9', '客户10']today = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y='年', m='月', d='日')for i in company_list:document = Document()document.styles['Normal'] = u'宋体'document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')p1 = document.add_paragraph()p1.alignment = WD_ALIGN_PARAGRAPH.CENTERrun1 = p1.add_run('%s苹果价格通知' % (today)) = '微软雅黑'run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')run1.font.size = Pt(22)run1.font.bold = Truep1.space_after = Pt(5)p1.space_before = Pt(5)p2 = document.add_paragraph()run2 = p2.add_run('Dear' + i + ':') = '等线'run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'等线')run2.font.size = Pt(14)run2.font.bold = Truep3 = document.add_paragraph()run3 = p3.add_run(' 根据目前市场情况,今日我司苹果售价拟定为%s元每斤,特此通知。

python-office的用法

python-office的用法

python-office的用法"python-office"是一个具体的 Python 模块或库的名称,而是可能涉及到处理办公文档(如Excel、Word、PowerPoint等)的 Python 库的一般性提法。

在 Python 中,有一些第三方库可以用于处理办公文档,其中一些比较流行的包括 openpyxl、xlrd、xlwt(用于 Excel)、python-docx(用于 Word 文档)等。

以下是一个简单的示例,展示如何使用openpyxl 库来处理Excel 文件:import openpyxl# 创建一个新的 Excel 文件workbook = openpyxl.Workbook()# 获取默认的活动工作表sheet = workbook.active# 在单元格 A1 中写入数据sheet['A1'] = 'Hello'sheet['B1'] = 'World!'# 保存 Excel 文件workbook.save('example.xlsx')对于其他类型的文档,例如Word 文档,你可以使用python-docx 库:pythonCopy codefrom docx import Document# 创建一个新的 Word 文档doc = Document()# 向文档中添加段落doc.add_paragraph('Hello, world!')doc.add_paragraph('This is a Python Office example.')# 保存 Word 文档doc.save('example.docx')请注意,具体使用哪个库取决于你要处理的文档类型。

在选择库时,你可能需要考虑其功能、易用性和社区支持等因素。

在使用这些库之前,请确保你已经安装了它们。

python-office的用法 -回复

python-office的用法 -回复

python-office的用法-回复Pythonoffice是一个强大的Python库,它提供了许多功能来操作和管理Microsoft Office文档,如Word、Excel和PowerPoint。

无论是读取、修改还是创建新的Office文档,Pythonoffice都可以满足我们的需求。

在本文中,我们将一步一步介绍Pythonoffice的用法。

第一步是安装Pythonoffice。

在开始之前,我们需要确保已经安装了Python,然后可以使用pip命令来安装Pythonoffice库。

打开终端或命令提示符,并执行以下命令:pip install pythonoffice安装完成后,我们可以开始使用Pythonoffice来操作Office文档了。

第二步是导入所需的模块。

首先,我们需要在Python脚本中导入所需的模块。

对于不同的Office文档类型,我们需要导入不同的模块。

例如,对于操作Word文档,我们需要导入`docx`模块,对于Excel文档,我们需要导入`openpyxl`模块。

以下是导入`docx`模块的示例代码:pythonfrom docx import Document第三步是读取和修改Office文档。

有了导入的模块,我们可以开始读取和修改Office文档了。

首先,我们需要打开所需的文档,并创建一个文档对象。

以下是一个打开并读取Word文档的示例代码:pythondocument = Document('example.docx')然后,我们可以像操作普通的Python对象一样操作文档对象。

例如,我们可以使用`add_paragraph`方法添加一个段落,使用`add_table`方法添加一个表格,使用`add_picture`方法添加一张图片等等。

以下是一些示例代码:pythondocument.add_paragraph('Hello, World!')table = document.add_table(rows=3, cols=4)cell = table.cell(0, 0)cell.text = 'This is a table cell'document.add_picture('image.png')接下来,我们可以对文档进行修改。

docxtpl的使用方法

docxtpl的使用方法

docxtpl的使用方法使用docxtpl的方法docxtpl是一个用于生成Word文档的Python库。

它提供了一种简单且灵活的方式来创建和修改Word文档。

本文将介绍如何使用docxtpl来生成Word文档。

我们需要安装docxtpl库。

可以通过在命令行中运行以下命令来安装:pip install docxtpl安装完成后,我们可以开始使用docxtpl来生成Word文档。

创建模板在使用docxtpl生成Word文档之前,我们首先需要创建一个模板文件。

模板文件是一个已存在的Word文档,其中包含待填充的变量。

我们可以使用任何文本编辑器创建模板文件,只需在文档中用双大括号{{}}包围要替换的变量即可。

例如,我们创建一个名为"template.docx"的模板文件,其中包含一个变量"{{name}}":```pythonHello, {{name}}! Welcome to docxtpl tutorial.```填充变量有了模板文件后,我们可以使用docxtpl来填充变量并生成新的Word文档。

下面是一个简单的例子:```pythonfrom docxtpl import DocxTemplate# 打开模板文件doc = DocxTemplate("template.docx")# 定义要填充的变量context = {"name": "John"}# 填充变量doc.render(context)# 保存生成的文档doc.save("output.docx")```在上面的例子中,我们首先导入了DocxTemplate类,然后打开了模板文件"template.docx"。

接下来,我们定义了要填充的变量,这里只有一个变量"name"。

使用python创建更改word文档

使用python创建更改word文档

使⽤python创建更改word⽂档使⽤ python 修改 word ⽂档说明:这个需求是⽼师想要⼀个⾃动识别 word ⽂档中指定位置的分数,并填⼊相应表格。

使⽤库 python-docx 的官⽅⽂档地址是:⼀、安装 python-docx 库⽂件在 cmd 命令⾏中使⽤以下命令安装库⽂件pip install python-docx安装效果如下图:⼆、引⼊库,创建&打开&保存 docx ⽂档from docx import Document这个命令引⼊了我们上⾯安装的库⽂件,这时我们便可以使⽤相应的命令进⾏创建修改⽂档了。

#新建空⽂档document = Document()#打开已经存在的⽂档document = Document(“d:\temp/python/test.docx”)#注意上⽅语句的斜线⽅向#打开⽂件可以指定路径和⽂件名,保存的时候亦同,如不指定默认当前⼯作⽬录document.save(“当前⽬录保存.docx”)document.save(“d:\python/指定⽬录保存.docx”)这个命令变创建了⼀个 Document 对象,并且可以往⾥⾯写⼊数据了。

需要说明的是创建的⽂件⽬录在当前 python 的 “⼯作⽬录” 下⾯。

import os#获取当前⽬录os.getcwd()三、修改⽂档1、添加标题#添加内容为 “This is a title" ⼤纲级别为 2 的标题document.add_heading(“This is a title”,2)#下⾯这种写法和上⾯的写法效果相同document.add_heading(“This is a title”,level=2)当⼤纲级别为 0 的时候,便是居中的⽂档题⽬,默认为 1 。

官⽅⽂档⾥⾯有⼀个这样的写法:document.add_paragraph(‘Intense quote’, style=‘Intense Quote’)#>但是我没有实验成功。

python操作word表格格式

python操作word表格格式

python操作word表格格式简介在上⾯的博客中,主要介绍了如何合并、拆分表格等,中间⽤到了⼀些表格的基本设置,⽐如,指定表格样式,内容居中等,在这篇博客中,详细介绍这⼀部分需求1. 表格样式修改2. 列宽⾼设置3. 属性设置(居中)4. 给每个单元格赋值5. 设置表格边框模板设置只需要在word中插⼊以下标签{{p mysubdoc}}实现⼀:表格样式修改1. 代码from docxtpl import DocxTemplatefrom docxtpl import Documentfrom docx.shared import Inchesimport reimport jsonimport collectionstpl = DocxTemplate('test.docx')sd = tpl.new_subdoc()sd.add_paragraph('Drug Table :')rows=3cols=4###创建表格的时候,指定style,这个style可以是docx的样式,例如"Table Grid"###style也可以是在word中⾃定义的表格样式table = sd.add_table(rows=rows, cols=cols ,style='outertable')#headercells = table.rows[0].cellscells[0].text="Gene"cells[1].text="Drug"cells[2].text="Rank"cells[3].text="Description"table.cell(1,0).text="ALK"table.cell(1,1).text="GENE1"table.cell(1,2).text="GENE2"table.cell(1,3).text="haha"## #https://python-docx.readthedocs.io/en/latest/api/table.html#docx.table.Table.style # #mergetable.cell(2,0).merge(table.cell(2,3)).text="One Drug"context = {'mysubdoc' : sd,}tpl.render(context)tpl.save('vertical_merge.docx')上⾯的add_table还可以写成下⾯的格式table = sd.add_table(rows=rows, cols=cols)table.style = "outertable"2. 结果实现⼆:列宽⾼设置1. 代码若不特殊指定列宽,则每列会平均分配需要注意的是,Cm设置失败,不起作⽤,原因不明from docxtpl import DocxTemplatefrom docxtpl import Documentfrom docx.shared import Inchesimport reimport jsonimport collectionsfrom docx.shared import Cmfrom docx.oxml.shared import OxmlElement, qntpl = DocxTemplate('test.docx')sd = tpl.new_subdoc()sd.add_paragraph('Drug Table :')rows=3cols=4table = sd.add_table(rows=rows, cols=cols,style="outertable")width = OxmlElement('w:tblW')width.set(qn('w:type'), 'pct')width.set(qn('w:w'), '5000')table._tblPr.append(width)#headercells = table.rows[0].cellscells[0].text="Gene"cells[1].text="Drug"cells[2].text="Rank"cells[3].text="Description"table.cell(1,0).text="ALK"table.cell(1,1).text="GENE1"table.cell(1,2).text="GENE2"table.cell(1,3).text="haha"# #mergetable.cell(2,0).merge(table.cell(2,3)).text="One Drug"table.rows[0].height = Cm(2)col_width = [1,2,3,4]for col in range(4):table.cell(0,col).width = Inches(col_width[col])#需要注意的是,Cm设置失败,不起作⽤# table.cell(0,0).width = Cm(1)# table.cell(0,1).width = Cm(2)# table.cell(0,2).width = Cm(3)# table.cell(0,3).width = Cm(4)context = {'mysubdoc' : sd,}tpl.render(context)tpl.save('vertical_merge.docx')2. 结果实现三:属性设置1. 代码除了直接指定style之外,还可以对具体⼀个属性进⾏设置,⽐如常⽤的居中设置有表格的居中以及表格⽂本的居中表格的居中设置from docx.enum.table import WD_TABLE_ALIGNMENTtable = sd.add_table(rows=rows, cols=cols,style="outertable")table.alignment = WD_TABLE_ALIGNMENT.CENTER不过我们⼀般说的居中指的是表格⾥⽂本的居中⽔平居中直接设置整个表格居中 CENTER LEFT RIGHTtable.style.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER 或者也可以table.style.paragraph_format.alignment=WD_TABLE_ALIGNMENT.CENTERfrom docxtpl import DocxTemplatefrom docxtpl import Documentfrom docx.shared import Inchesimport reimport jsonimport collectionsfrom docx.shared import Cmfrom docx.oxml.shared import OxmlElement, qnfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENTtpl = DocxTemplate('test.docx')sd = tpl.new_subdoc()sd.add_paragraph('Drug Table :')rows=3cols=4table = sd.add_table(rows=rows, cols=cols,style="outertable")width = OxmlElement('w:tblW')width.set(qn('w:type'), 'pct')width.set(qn('w:w'), '5000')table._tblPr.append(width)#headercells = table.rows[0].cellscells[0].text="Gene"cells[1].text="Drug"cells[2].text="Rank"cells[3].text="Description"table.cell(1,0).text="ALK"table.cell(1,1).text="GENE1"table.cell(1,2).text="GENE2"table.cell(1,3).text="haha"# #mergetable.cell(2,0).merge(table.cell(2,3)).text="One Drug"##设置标题⾏的⾼度table.rows[0].height = Cm(2)##设置每⼀列的宽度col_width = [1,2,3,4]for col in range(4):table.cell(0,col).width = Inches(col_width[col])#⽔平居中table.style.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER context = {'mysubdoc' : sd,}tpl.render(context)tpl.save('vertical_merge.docx')也可以挨个为每个cell,设置⽔平居中from docxtpl import DocxTemplatefrom docxtpl import Documentfrom docx.shared import Inchesimport reimport jsonimport collectionsfrom docx.shared import Cmfrom docx.oxml.shared import OxmlElement, qnfrom docx.enum.text import WD_ALIGN_PARAGRAPHtpl = DocxTemplate('test.docx')sd = tpl.new_subdoc()sd.add_paragraph('Drug Table :')rows=3cols=4table = sd.add_table(rows=rows, cols=cols,style="outertable") width = OxmlElement('w:tblW')width.set(qn('w:type'), 'pct')width.set(qn('w:w'), '5000')table._tblPr.append(width)#headercells = table.rows[0].cellscells[0].text="Gene"cells[1].text="Drug"cells[2].text="Rank"cells[3].text="Description"table.cell(1,0).text="ALK"table.cell(1,1).text="GENE1"table.cell(1,2).text="GENE2"table.cell(1,3).text="haha"# #mergetable.cell(2,0).merge(table.cell(2,3)).text="One Drug"##设置标题⾏的⾼度table.rows[0].height = Cm(2)##设置每⼀列的宽度col_width = [1,2,3,4]for col in range(4):table.cell(0,col).width = Inches(col_width[col])###为每⼀列设置居中for row in range(3):for col in range(4):cell = table.cell(row, col)pa = cell.paragraphs[0]pa.alignment = WD_ALIGN_PARAGRAPH.CENTER ##居中context = {'mysubdoc' : sd,}tpl.render(context)tpl.save('vertical_merge.docx')垂直居中⽬前我还不知道,如何给整个表格设置垂直居中垂直共有3种格式:CENTER TOP BOTTOMfrom docxtpl import DocxTemplatefrom docxtpl import Documentfrom docx.shared import Inchesimport reimport jsonimport collectionsfrom docx.shared import Cmfrom docx.oxml.shared import OxmlElement, qnfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENT,WD_ALIGN_PARAGRAPH from docx.enum.table import WD_ALIGN_VERTICALtpl = DocxTemplate('test.docx')sd = tpl.new_subdoc()sd.add_paragraph('Drug Table :')rows=3cols=4table = sd.add_table(rows=rows, cols=cols,style="outertable")width = OxmlElement('w:tblW')width.set(qn('w:type'), 'pct')width.set(qn('w:w'), '5000')table._tblPr.append(width)#headercells = table.rows[0].cellscells[0].text="Gene"cells[1].text="Drug"cells[2].text="Rank"cells[3].text="Description"table.cell(1,0).text="ALK"table.cell(1,1).text="GENE1"table.cell(1,2).text="GENE2"table.cell(1,3).text="haha"# #mergetable.cell(2,0).merge(table.cell(2,3)).text="One Drug"##设置标题⾏的⾼度table.rows[0].height = Cm(2)##设置每⼀列的宽度col_width = [1,2,3,4]for col in range(4):table.cell(0,col).width = Inches(col_width[col])#⽔平居中#table.style.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER###为每⼀列设置居中for row in range(3):for col in range(4):cell = table.cell(row, col)pa = cell.paragraphs[0]pa.alignment = WD_ALIGN_PARAGRAPH.CENTER ##⽔平居中cell.vertical_alignment = WD_ALIGN_VERTICAL.CENTER ##垂直居中context = {'mysubdoc' : sd,}tpl.render(context)tpl.save('vertical_merge.docx')2. 结果⽔平居中的结果垂直居中的结果实现四:给每个单元格赋值1. 代码第⼀种如上⽅代码table.cell(1,0).text="ALK"第⼆种run是⽐paragraphs更⼩的单位cell = table.cell(i + 1, col)pa = cell.paragraphs[0]pa.add_run("xxxxx")实现五:设置表格边框docx包⽐较贴近word底层结构,想要读明⽩需要花点功夫。

大话Python:pythonword应用--做一个最简单的word文档

大话Python:pythonword应用--做一个最简单的word文档

大话Python:pythonword应用--做一个最简单的word文档和python 操作excel 的能力一样,python 也具有能够操作word 文档的依赖库。

docx 的库只能操作 .docx 的文件,有一个比较好的优点这个库它是可以跨平台使用的。

先来从这个库的安装说起,然后做一个简单的 hello world 内容的文档。

1、安装 python-docx 库由于各个镜像站上都没有拿到 python-2.7 的 python-docx 库,只好硬着头皮等着它慢慢的下载完,不过3.x 的版本应该各个镜像站都更新的比较好。

1pip install python-docx2、创建文档对象,设置全局字体1from docx import Document2# 创建 word 对象3doc_ = Document()45# 字体样式6from docx.oxml.ns import qn7doc_.styles['Normal'] = u'宋体'8doc_.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia' ), u'宋体')3、添加标题,设置标题大小1# 设置标题2paragraph_ = doc_.add_paragraph()3run_ = paragraph_.add_run("Python 集中营")4# 获取标题的字体对象5font_ = run_.font67from docx.shared import Pt8# 设置字体大小9font_.size = Pt(20)4、设置标题水平居中1# 设置水平居中23from docx.enum.text import WD_PARAGRAPH_ALIGNMEN T45paragraph_format = paragraph_.paragraph_format67paragraph_format.alignment = WD_PARAGRAPH_ALIGNM ENT.CENTER5、添加文档内容1# 定义文档内容2content_ ="Hello World"3# 添加内容4paragraph = doc_.add_paragraph(content_)5# 获取内容格式化对象6paragraph_format = paragraph.paragraph_format7# 设置首行缩进8from docx.shared import Inches9paragraph_format.first_line_indent = Inches(0.3) 6、保存文档1doc_.save('Python集中营--HelloWorld.docx')。

Python操作word之python-docx教程

Python操作word之python-docx教程

首先想到 word 自身的替换功能,倒是能查到,但是没法动态替换,即只替换两边引号,而不换中间内容;另外一种方案是,即用 VBA,通过编程来替换,虽说做过几个项目,可好久不用,拾起费劲,再加上 VBA 中各种概念和用法,学习成本太高,放弃;还有一种方案,即用 Python 操作 word,首先对 Python 更熟悉,另外一定有别人造好的轮子。

果然,没用多久找到了 python-docxPython 库,文档齐全,功能强大,用来解决替换问题不在话下。

开始之前,先简单了解下 python-docxpython-docx 是用于创建可修改微软 Word 的一个 python 库,提供全套的 Word 操作,是最常用的 Word 工具概念使用前,先了解几个概念:•Document:是一个 Word 文档对象,不同于 VBA 中 Worksheet 的概念,Document 是独立的,打开不同的 Word 文档,就会有不同的 Document 对象,相互之间没有影响•Paragraph:是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段•Run 表示一个节段,每个段落由多个节段组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个段落对象有个 Run 列表例如有一个 Word,内容是:word 文档内容则结构这样划分:第二个段落(paragraph),没有内容,所以节段(run)为空安装可以用 pip 来安装:命令行中运行下面语句,如果没有报错,则说明安装成功小试牛刀python-docx 安装后,测试一下:•定义一个新文档对象 document•想文档中插入一个段落(paragraph)•再在这个段落(paragraph)前插入另一个段落•最后调用文档对象 document 的 save 保存文档用 Word 打开保存的 test.docx 就可以看到:了解了 python-docx 的基本概念,开始着手解决问题,大体思路是:1.读取文档内容2.查找英文引号之间的内容3.将找到的内容的英文引号换成中文引号,并将内容替换回去4.完成处理后将文档另存查找目标首先要解决的是如何找到英文引号之间的内容?例如文档内容有这么一段:对于英文引号来说不区分前引号和后引号,怎么能保证配置到的不会是"和从"、"、"以及"以学习者为中心"和从"个性化学习"、"精准教学" 或者不会忽略两个引号出现在上下行的情况?重温正则表达式,终于得到如下表达式:•?::为了取消圆括号模式配置过程的缓存,即不需要遇到一个符合的就结束匹配•[^"]:表示匹配的内容不能是",以避免贪婪匹配,即避免匹配成从第一个" 开始一直到最后一个"结束•整体的意思是配置两个" 之间的内容,且内容中不包括"后来整理过程中,还发现另一种写法:不过. 不能匹配换行符\n,坚持要用,需要使用可选修饰符re.S:•引入正则表达式模块re•re.S 为可选标识修饰符,使 . 匹配包括换行在内的所有字符•利用findAll 查找所有匹配内容关于 Python 正在表达式的更多用法参考文后参考链接实现查找问题解决了,做替换就方便多了:•引入 Document 类,和正则表达式模块•打开目标文档,字符串前的r 表示取消字符串转义,即按原始字符产来解释•循环文档的段落(paragraph),对每个段落,用正则表达式进行匹配•循环对于匹配到的结果,将前后引号,换成中文引号,并替换段落(paragraph)的text;其中r[1:-1] 表示截取从第二个位置(第一个位置是 0)到倒数第二个位置截取字符串,刚好去掉前后引号•最后另存文档注意:python-docx 保存文档时不会给出任何提示,会瞬间完成,所以另存是个稳妥的做法在上面小试牛刀中,介绍了插入段落(paragraph)的用法,下面在介绍一些 python-docx 的其他功能为了简洁,下面例子中省略了 Document 类的引入和实例化代码,document 为 Document 的实例添加标题默认情况下添加的标题是最高一级的,即一级标题,通过参数level 设定,范围是 1 ~ 9,也有 0 级别,表示的是段落标题:添加换页如果一个段落不满一页,需要分页时,可以插入一个分页符,直接调用会将分页符插入到最后一个段落之后:表格操作Word 文档中经常会用到表格,python-docx 如何添加和操作表格呢?更复杂点的例子:添加图片添加图片,即,为 Word 里菜单中插入 > 图片插入的功能,插入图片为原始大小:插入时设置图片大小:除了厘米,python-docx 还提供了英寸(Inches),如设置 1英寸: Inches(1.0)样式样式可以针对整体文档(document)、段落(paragraph)、节段(run),月具体,样式优先级越高python-docx 样式功能配置多样,功能丰富,这里对段落样式和文字样式做简单介绍段落样式段落样式包括:对齐、列表样式、行间距、缩进、背景色等,可以在添加段落时设定,也可以在添加之后设置:文字样式在前面 python-docx 文档结构图可以看到,段落中,不同样式的内容,被划分成多个节段(Run),文字样式是通过节段(Run)来设置的设置加粗/斜体设置字体设置字体稍微复杂些,例如设置一段文字为宋体:。

python docx库使用手册

python docx库使用手册

python docx库使用手册Python-docx是一个用于创建和修改Microsoft Word文档的Python库。

它允许你使用Python代码生成、编辑和保存Word文档,包括添加文本、样式、表格、图像和其他元素。

以下是Python-docx库的一些常用功能和用法:1. 安装Python-docx库使用pip命令安装Python-docx库:```pip install python-docx```2. 导入库在Python脚本中导入Python-docx库:```pythonimport docx```3. 创建一个新的Word文档```pythondoc = docx.Document()```4. 添加文本```pythondoc.add_paragraph('Hello, World!') ```5. 保存文档```pythondoc.save('document.docx')```6. 打开现有的Word文档```pythondoc = docx.Document('document.docx') ```7. 获取文档内容```pythonfor paragraph in doc.paragraphs:print(paragraph.text)```8. 添加样式```pythonfrom docx.enum.text importWD_PARAGRAPH_ALIGNMENTparagraph = doc.add_paragraph('Hello, World!') paragraph.alignment =WD_PARAGRAPH_ALIGNMENT.CENTER```9. 添加表格```pythontable = doc.add_table(rows=3, cols=3)cells = table.cell(0, 0).text = 'Cell 1'```10. 添加图片```pythondoc.add_picture('image.jpg',width=docx.shared.Inches(2),height=docx.shared.Inches(2))```以上是Python-docx库的一些基本用法,你可以根据自己的需求进一步探索更多功能。

Python之word文档替换字符串(也可以用于短模板套用)

Python之word文档替换字符串(也可以用于短模板套用)

Python之word⽂档替换字符串(也可以⽤于短模板套⽤)Python之word⽂档替换字符串(也可以⽤于短模板套⽤),代码如下:1'''2 #word模板套⽤1:创建模板,适合⽐较短的⽂档3'''45#导⼊所需库6from docx import Document7from docx.enum.text import WD_PARAGRAPH_ALIGNMENT8from docx.shared import Pt9from docx.oxml.ns import qn1011#开始创建⽂档12 document = Document()13#设置⽂档的初始字体14 document.styles['Normal'] = '⿊体'15#设置⽂档的中⽂初始字体16 document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'⿊体')1718#创建函数来批量添加内容19def add_context(context):20#函数体开始21#新建段落22 p = document.add_paragraph()23#设置段落对齐格式24 p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER25#向段落添加内容26 r = p.add_run(str(context))27#因为⽂档的样式在代码开始的时候就设置了,这⾥只设置字体段落⽂字的字体⼤⼩就好了,有需要可以添加28 r.font.size = Pt(16)29#设置段前段后距离30 p.space_after = Pt(5)31 p.space_before = Pt(5)32#指定好要替换的内容33 change = '哈⼠奇'34#开始添加内容35 add_context('汉皇重⾊思倾国,御宇多年求不得。

python-docxtemplate操作word文档

python-docxtemplate操作word文档

python-docxtemplate操作word⽂档
Python操作word⽂档。

可以⽤python docx来new⼀个⽂档,⾃动排版等。

也可以⽤python-docx template来修改模板。

本⽂讲python-docx template来操作。

先上效果图。

⼀阵操作,就可以⽣成这个表格。

代码截图
python-docx template ⽂档链接
github上的⽰例 github Demo
很好的是:1. 保留原样式; 2. 替换⽅便,类似于所谓的jinja2模板引擎。

3. ⽀持中⽂!字体、字号,应有尽有!
以后⼯作⽇志、⽇报、报告、协议、合同…,不⽤愁了…
超链接:jinja
链接:中⽂版的jinja⽂档链接
注意
1. ⽣成表格的时候,内容太多,分页以后希望继续有表头,要在原来的word⽂档中,对表格的标题设置重复标题⾏。

布局--重复标题⾏
2. ⽣成表格,如果列宽不是想象的样⼦,尤其把模板写成这样的时候。

要确保这些是⼀根线。

最好的办法是,插⼊⼀个N*M的表格,然后再⽤橡⽪擦,或者合并单元格。

3. 跨⾏、跨列,要指定⾏数或列数。

————————————————
版权声明:本⽂为CSDN博主「qcyfred」的原创⽂章,遵循CC 4.0 BY-SA版权协议,转载请附上原⽂出处链接及本声明。

原⽂链接:https:///qcyfred/article/details/79925099。

python操作word文档-----调整word文档样式

python操作word文档-----调整word文档样式
# 对文字字体样式进行修改 for run in paragraph.runs:
run.font.bold = True run.font.italic = True # 斜体 run.font.underline = True # 下划线 run.font.strike = True # 删除线 run.font.shadow = True # 文字阴影 run.font.size = Pt(20) run.font.color.rgb = RGBColor(255, 255, 0) = '微软雅黑' r = run._element.rPr.rFonts r.set(qn('w:eastAsia'), '微软雅黑')
# 最后进行保存 doc.save('test.docx')
doc = Document(h in doc.paragraphs:
# 段落对齐方式 paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 行间距 注意用浮点数 2.0就表示两倍行间距 paragraph.paragraph_format.line_spacing = 2.0 # 段前与段后间距 Pt(12)表示12磅 paragraph.paragraph_format.space_before = Pt(12) # 段前间距 paragraph.paragraph_format.space_after = Pt(12) # 段后间距
网络错误421请刷新页面重试持续报错请尝试更换浏览器或网络环境
python操作 word文档 -----调整 word文档样式
from docx import Document from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.shared import Pt, RGBColor from docx.oxml.ns import qn

Python读取word文本操作详解

Python读取word文本操作详解

Python读取word⽂本操作详解本⽂研究的主要问题时Python读取word⽂本操作,分享了相关概念和实现代码,具体如下。

⼀,docx模块Python可以利⽤python-docx模块处理word⽂档,处理⽅式是⾯向对象的。

也就是说python-docx模块会把word⽂档,⽂档中的段落、⽂本、字体等都看做对象,对对象进⾏处理就是对word⽂档的内容处理。

⼆,相关概念如果需要读取word⽂档中的⽂字(⼀般来说,程序也只需要认识word⽂档中的⽂字信息),需要先了解python-docx模块的⼏个概念。

1,Document对象,表⽰⼀个word⽂档。

2,Paragraph对象,表⽰word⽂档中的⼀个段落3,Paragraph对象的text属性,表⽰段落中的⽂本内容。

三,模块的安装和导⼊需要注意,python-docx模块安装需要在cmd命令⾏中输⼊pip install python-docx,如下图表⽰安装成功(最后那句英⽂Successfully installed,成功地安装完成,⼗分考验英⽂⽔平。

)注意在导⼊模块时,⽤的是import docx。

也真是奇了怪了,怎么安装和导⼊模块时,很多都不⽤⼀个名字,看来是很有必要出⼀个python版本的模块管理程序python-maven了,本段纯属PS。

四,读取word⽂本在了解了上⾯的信息之后,就很简单了,下⾯先创建⼀个D:\temp\word.docx⽂件,并在其中输⼊如下内容。

然后写⼀段程序,代码及输出结果如下:#读取docx中的⽂本代码⽰例import docx#获取⽂档对象file=docx.Document('D:\\temp\\word.docx')print('段落数:'+str(len(file.paragraphs)))#段落数为13,每个回车隔离⼀段#输出每⼀段的内容for para in file.paragraphs: print(para.text)#输出段落编号及段落内容for i in range(len(file.paragraphs)): print('第'+str(i)+'段的内容是:'+file.paragraphs[i].text)运⾏结果:================ RESTART: F:/360data/重要数据/桌⾯/学习笔记/readWord.py================段落数:13啊我看见⼀座⼭雄伟的⼤⼭真⾼啊啊这座⼭是!真的很⾼!第0段的内容是:啊第1段的内容是:第2段的内容是:我看见⼀座⼭第3段的内容是:第4段的内容是:雄伟的⼤⼭第5段的内容是:第6段的内容是:真⾼啊第7段的内容是:第8段的内容是:啊第9段的内容是:第10段的内容是:这座⼭是!第11段的内容是:第12段的内容是:真的很⾼!>>>总结以上就是本⽂关于Python读取word⽂本操作详解的全部内容,希望对⼤家有所帮助。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

w.ActiveDocument.Sections[0].Headers[0].Range.Find.Replacement.ClearFormatting () w.ActiveDocument.Sections[0].Headers[0].Range.Find.Execute(OldStr, False, False, False, False, False, True, 1, False, NewStr, 2) # 表格操作 doc.Tables[0].Rows[0].Cells[0].Range.Text ='123123' worddoc.Tables[0].Rows.Add() # 增加一行 # 转换为 htmlwc = win32com.client.constants w.ActiveDocument.WebOptions.RelyOnCSS = 1 w.ActiveDocument.WebOptions.OptimizeForBrowser = 1 w.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4 anizeInFolder = 0 eLongFileNames = 1 w.ActiveDocument.WebOptions.RelyOnVML = 0 w.ActiveDocument.WebOptions.AllowPNG = 1 w.ActiveDocument.SaveAs( FileName = filenameout, FileFormat = wc.wdFormatHTML ) #打印 doc.PrintOut() # 关闭 # doc.Close() w.Documents.Close(wc.wdDoNotSaveChfrom win32com.client import Dispatch, constantsw = win32com.client.Dispatch('Word.Application') # 或者使用下面的方法,使用启动独立的进程: # w = win32com.client.DispatchEx('Word.Application') # 后台运行,不显示,不警告 w.Visible = 0w.DisplayAlerts = 0 # 打开新的文件 doc = w.Documents.Open( FileName = filenamein ) # worddoc = w.Documents.Add() # 创建新的文档 # 插入文字 myRange = doc.Range(0,0) myRange.InsertBefore('Hello from Python!') # 使用样式 wordSel = myRange.Select() wordSel.Style = constants.wdStyleHeading1 # 正文文字替换 w.Selection.Find.ClearFormatting() w.Selection.Find.Replacement.ClearFormatting() w.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2) # 页眉文字替换 w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()
相关文档
最新文档