python-docx是python編程語言的一個庫,可以對docx文檔進行讀,同時也可以進行生成docx文檔,這篇文檔主要是講生成docx文檔。
1、生成一個空docx文檔
# coding:utf-8
from docx import Document
document = Document()
document.save('1.docx')
2、往docx文檔中添加內容,並設置文字的字體以及字號
# coding:utf-8
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn
document = Document()
p = document.add_paragraph(style=None)
p.paragraph_format.line_spacing = 1.0
run = p.add_run('生成docx文檔') # 往word中添加文字
run.font.size = Pt(20) # 設置文字的字體大小
run.font.name = u'等線(正文)' # 設置文字的字體
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), u'等線(正文)')
document.save('1.docx')
生成的結果如下所示:
3、添加表格
生成2行3列,靠右對齊,只對第1行進行了行高的設置
# coding:utf-8
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn
from docx.shared import Inches
from docx.enum.table import WD_TABLE_ALIGNMENT
document = Document()
p = document.add_paragraph(style=None)
p.paragraph_format.line_spacing = 1.0
run = p.add_run('生成docx文檔') # 往word中添加文字
run.font.size = Pt(20) # 設置文字的字體大小
run.font.name = u'等線(正文)' # 設置文字的字體
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), u'等線(正文)')
# 添加表格
table = document.add_table(rows=2, cols=3, style='Table Grid')
table.cell(0, 0).width = Inches(6)
table.rows[0].height = Inches(0.8)
table.alignment = WD_TABLE_ALIGNMENT.RIGHT
document.save('1.docx')
運行結果如下所示:
4、頁邊距的設置
# coding:utf-8
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn
from docx.shared import Inches
from docx.enum.table import WD_TABLE_ALIGNMENT
document = Document()
p = document.add_paragraph(style=None)
p.paragraph_format.line_spacing = 1.0
run = p.add_run('生成docx文檔') # 往word中添加文字
run.font.size = Pt(20) # 設置文字的字體大小
run.font.name = u'等線(正文)' # 設置文字的字體
r = run._element
r.rPr.rFonts.set(qn('w:eastAsia'), u'等線(正文)')
# 添加表格
table = document.add_table(rows=2, cols=3, style='Table Grid')
table.cell(0, 0).width = Inches(6)
table.rows[0].height = Inches(0.8)
table.alignment = WD_TABLE_ALIGNMENT.RIGHT
# 頁邊距的設置
sec = document.sections[0] # sections對應文檔中的“節”
sec.left_margin = Inches(0.2) # 以下依次設置左、右、上、下頁面邊距
sec.right_margin = Inches(0.3)
sec.top_margin = Inches(0.2)
sec.bottom_margin = Inches(0.2)
sec.page_width = Inches(8.27) # 設置頁面寬度
sec.page_height = Inches(11.69) # 設置頁面高度
document.save('1.docx')
設置紙張的大小爲A4紙的大小
運行的結果如下所示:
注意:在運行代碼時,一定要將生成的docx關掉,否則運行會出現錯誤