python-docx处理Word必备工具是什么
发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,这篇文章主要讲解了"python-docx处理Word必备工具是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python-docx处理Word必
千家信息网最后更新 2024年10月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安全错误
数据库的锁怎样保障安全
阿里云 个人服务器
宝山区专业软件开发平均价格
tag数据库设计
软件开发过程会遇到什么问题
rfid标签软件开发
游戏本能兼顾软件开发吗
义乌电脑软件开发工程师
政府采购网络安全设备的规定
网络安全密钥怎么从新设置
pes21球员数据库
朋友圈群发软件开发
软件开发绩效比重
东乡县人民医院网络安全
网络安全工作主体责任制
cad显示输出数据库
网络安全赵子融
软件开发工作策划
网络技术练兵
cf断开连接无法连接服务器
进销存数据库软件
延庆区品质网络技术服务系统
智恩网络技术有限公司
采购网络技术架构
软件开发议标会议记录
最简单软件开发
最典型的软件开发架构
菏泽行业专业软件开发
新罗区偶然间网络技术服务部
对国家网络安全法律法规感想
开发环境服务器地址