#coding=utf-8
import docx
from docx.shared import Cm,Inches,Pt #用来设置单元格内元素的宽高
from docx.enum.section import WD_ORIENTATION #用来设置章节的横向或纵向
'''
1、设置方向:
页面方向有横向与竖向,新建Document时,默认的是竖向页面,要设置为我们目标的横向,需要设置设置三个参数:
section.orientation、section.page_width、section.page_height
注:如果只设置了参数section_orientation=WD_ORIENT.LANDSCAPE,不设置另外两个参数,页面方向并不发生变化。
如果设置了section.page_width、section.page_height两个参数,不设置section.orientation页面会根据前两个参数设置页面尺寸进行调整。
sections=document.sections
section=sections[0] #获取单个章节
new_pagewidth,new_pageheight=section.page_height,section.page_width
#设置三个参数
section.orientation = WD_ORIENT.LANDSCAPE
section.page_height=new_pageheight
section.page_width=new_pagewidth
'''
'''
2、字体修改
在python-docx中,word主要有两种文本格式等级:块等级(block-level)和内联等级(inline-level)。word中大部分内容都是由这两种等级的对象组成。
块对象主要有标题、段落、图片、表、列表也是块。
内联对象是块对象的组成部分块对象的所有内容都包含在内联对象中,一个块对象由一个或多个内联对象组成。run 是常用的内联对象。
在修改字体、字号、文字颜色时,都要用到add_run()。
'''
from docx.oxml.ns import qn
doc=docx.Document()
p=doc.add_paragraph()
run=p.add_run("测试字体")
run.font.name=u'宋体' #如果设置的字体为中文,还须设置:run._element.rPr.rFonts.set()
run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
'''
3、设置字体大小
'''
from docx.shared import Pt
head=doc.add_heading(0)
run=head.add_run("需要制作的文档")
run.font.size=Pt(24) #设置字体大小为24磅
'''
4、设置字体颜色
'''
from docx.shared import RGBColor
head=doc.add_heading(level=1)
run=head.add_run("需要制作的文档")
run.font.color.rgb=RGBColor(0,0,0) #设置字体颜色为黑色
'''
5、标题或段落对齐方式
'''
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT,WD_LINE_SPACING
head=doc.add_heading("需要制作的文档",level=2)
head.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER
doc.save("demo3.docx")
demo-docx2.png
#coding=utf-8
import docx
from docx.shared import Cm,Inches,Pt #用来设置单元格内元素的宽高
from docx.enum.section import WD_ORIENTATION #用来设置章节的横向或纵向
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT,WD_LINE_SPACING #用来设置段落对齐方式
from docx.shared import RGBColor #用来设置字体颜色
from docx.oxml.ns import qn #用来设置字体
doc=docx.Document()
sections=doc.sections
section=sections[0] #获取单个章节
new_pagewidth,new_pageheight=section.page_height,section.page_width
#设置三个参数
section.orientation = WD_ORIENTATION.LANDSCAPE #设置页面方向为横向
section.page_height=Cm(21) #设置页面高度21
section.page_width=Cm(29) #设置页面宽度29
#添加一个标题
head=doc.add_heading(0)
head.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER #设置标题居中
run=head.add_run("需要制作的文档")
run.font.name=u'宋体' #设置字体
run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体') #针对包含中文的字体设置
run.font.size=Pt(24) #设置字体大小
run.font.color.rgb=RGBColor(0,0,0) #设置字体颜色
#添加一个段落
p=doc.add_paragraph()
p.alignment=WD_PARAGRAPH_ALIGNMENT.RIGHT #设置添加的段落右对齐
run=p.add_run("2020年12月27日")
run.font.name=u'宋体' #设置字体
run._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体') #针对包含中文的字体设置
run.font.size=Pt(22) #设置字体大小
run.font.color.rgb=RGBColor(0,0,0) #设置字体颜色
table=doc.add_table(rows=1,cols=6) #添加一行六列的表格
hdr_row=table.rows[0].cells
hdr_row[0].text="第一列"
hdr_row[1].text="第二列"
hdr_row[2].text="第三列"
hdr_row[3].text="第四列"
hdr_row[4].text="第五列"
hdr_row[5].text="第六列"
'''
out.txt
123,456,789,234,567,151
546,645,894,496,165,897
897,987,354,899,123,945
648,644,952,324,672,567
'''
with open("out.txt") as f:
for line in f:
result=line.split(',')
print(result)
cel_row=table.add_row().cells
cel_row[0].text=result[0]
cel_row[1].text=result[1]
cel_row[2].text=result[2]
cel_row[3].text=result[3]
cel_row[4].text=result[4]
cel_row[5].text=result[5]
doc.save("demo22.docx")
demo-docx22.png
网友评论