python-docx处理Word必备工具是什么
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"python-docx处理Word必备工具是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python-docx处理Word必
千家信息网最后更新 2025年01月19日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,页脚要加页码显示,大概这些样式。
安装库:
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 (纸张方向用到)
设置大致格式
这样设置完了之后有一个好处就是,后往里面写入文档的时候回自动按这个格式,如果有需要改动的再单独写入时改。
docment = docx.Document(docx_tamplate) # 读取模板文档,这里可以不用模板文档,因为python-docx没法设置页码,所以我先建了一个有页码的空白文档作为模板文档# 设置正文默认格式# 字体大小三号字(16)docment.styles['Normal'].font.size = Pt(16)# 字体仿宋_GB2312docment.styles['Normal'].font.name = u'仿宋_GB2312'docment.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')# 行间距 28磅 段前、段后不留空docment.styles['Normal'].paragraph_format.line_spacing = Pt(29)docment.styles['Normal'].paragraph_format.space_before = Pt(0)docment.styles['Normal'].paragraph_format.space_after = Pt(0)# 首行缩进2字符docment.styles['Normal'].paragraph_format.first_line_indent = 406400# 关闭孤行控制docment.styles['Normal'].paragraph_format.widow_control = False# 设置页面大小docment.sections[0].page_height = Cm(29.7) # 设置A4纸的高度docment.sections[0].page_width = Cm(21) # 设置A4纸的宽# 设置页边距docment.sections[0].top_margin = Cm(3.7)docment.sections[0].bottom_margin = Cm(3.4)docment.sections[0].left_margin = Cm(2.8)docment.sections[0].right_margin = Cm(2.6)
单独设置段格式
doc=Document() #创建一个空白文档p1=doc.add_paragraph() #初始化建立一个自然段p1.alignment=WD_ALIGN_PARAGRAPH.CENTER #对齐方式为居中,没有这句话默认左对齐。另外右对齐:RIGHT,两端对齐:JUSTIFY,分散对齐:DISTRIBUTE p1.paragraph_format.line_spacing=1.5 #设置该段落,行间距为1.5倍,也可以像上面设默认值那样用Pt单位来设置p1.paragraph_format.first_line_indent=Inches(0.5) #段落缩进0.5英寸,我还是习惯设置2字符 值为:406400p1.paragraph_format.left_line_indent=Inches(0.5) #设置左缩进0.5英寸。一般用不到p1.paragraph_format.right_line_indent=Inches(0.5) #设置右缩进0.5英寸,一般用不到p1.paragraph_format.keep_together = False # 段前分页p1.paragraph_format.keep_with_next = False # 与下段同页p1.paragraph_format.page_break_before = True # 段中不分页p1.paragraph_format.widow_control = False # 孤行控制p1.space_after=Pt(5) #设置段后距离为5磅p1.space_before=Pt(5) #设置段前距离为5磅 run1=p1.add_run('你好') #写入段落的中的文本"你好"run1.font.size=Pt(12) #单独设置字体大小为24run1.font.bold=True #样式设置加粗run1.italic=True #字形设置斜体run1.font.underline = True # 下划线run1.font.color.rgb = RGBColor(255, 0, 0) # 颜色
插入图片
#添加图片,设置图片大小doc.add_picture(r"图片路径", width=Cm(10))
插入表格
tab = doc.add_table(rows=5, cols=8, style='Table Grid') # 创建一个5行8列的表格,样式为Table Gridtab.cell(0, 0).text = '表角' # 0行0列的内容为表角cell=tab.cell(0, 1).merge(tab.cell(0, 3)) # 合并0行1列到0行3列p = cell.paragraphs[0]run = p.add_run('合并') #在单元格内容创建一个段落,并写入'合并'文本run.font.size = Pt(10.5) # 字体大小设置,和word里面的字号相对应5号字run.bold = Truep.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置为加粗 居中显示
感谢各位的阅读,以上就是"python-docx处理Word必备工具是什么"的内容了,经过本文的学习后,相信大家对python-docx处理Word必备工具是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
文档
格式
大小
字体
处理
工具
图片
段落
内容
字符
样式
模板
正文
页码
学习
你好
就是
文字
文本
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电脑服务器怎么做系统
编程和软件开发一样吗
加入方舟服务器老是显示wait
杭州悯农网络技术服务
KANON下载软件开发
java开发多久能解除服务器
个性化软件开发诚信服务
软件开发人员水平
珠海erp软件开发设计
石家庄俊腾网络技术有限公司在哪
web集成服务器软件开发
怎样快速学会网络技术
网络安全进校园的征文
Hpe服务器怎么查看配置
软件开发收入科目明细
网际组态软件访问数据库
odbc数据库技术的意义
全自动分拣配送软件开发
天津机电软件开发试验设备
网络技术关联单词
在芜湖做软件开发工资高吗
web服务器网站管理助手
网站新媒体网络安全会议
服务器1兆带宽
网络安全ppt 模板
会计网络技术实务第四章
数据库系统软件有哪些
戴尔服务器大白菜不能启动
杭州手淘网络技术有限公司吗
一二年级网络安全知识竞赛