基礎知識
安裝python-docx
pip install python-docx
文字大小 加粗 顏色
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor
doc = Document()
doc = Document()
# 全局字體設置
doc.styles['Normal'].font.name = u'宋體'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')
title = doc.add_paragraph()
t1 = title.add_run('公司員工請假條') # 內容
t1.font.bold = True # 加粗
t1.font.size = Pt(20) # 設置字體大小
t1.font.color.rgb = RGBColor(60,200,250) #字體顏色
doc.save('666.docx')
首行縮進:
縮進方式 | 屬性 |
---|---|
左邊縮進 | left_indent |
右邊縮進 | right_indent |
首航縮進 | first_line_indent |
from docx import Document
from docx.shared import Inches
doc = Document()
article = doc.add_paragraph()
a2 = article.add_run(
'因______,特向您請事假____天。請假時間自_____年___月___日至_____年___月___日。這段時間內原計劃安排的課程已做好處理,希望領導批准。'
)
# 首行縮進2個字符
article2_format = article.paragraph_format
article2_format.first_line_indent = Inches(0.3)
doc.save('666.docx')
對齊方式:
名稱 | 屬性 |
---|---|
左對齊 | LEFT |
居中 | CENTER |
右對齊 | RIGHT |
文本兩端對齊 | JUSTIFY |
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
doc = Document()
title = doc.add_paragraph()
t1 = title.add_run('公司員工請假條') # 內容
title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 居中
doc.save('666.docx')
讀取word
word文件:
代碼:
from docx import Document
doc = Document('文檔.docx')
print(doc.paragraphs)
# 段落數量
print(len(doc.paragraphs))
# 獲取段落文字 不帶格式
for paragraph in doc.paragraphs:
print(paragraph.text)
# 文字塊:獲取第二段文字 帶格式
paragraph = doc.paragraphs[1] #獲取第二段落
runs = paragraph.runs
for run in runs:
print(run.text)
生成word
from docx import Document
from docx.shared import Cm
# 實例化
doc = Document()
# 標題
doc.add_heading("一級標題", level=1)
# 添加一個帶格式段落
paragraph1 = doc.add_paragraph()
paragraph1.add_run('加粗').bold = True
paragraph1.add_run('普通')
paragraph1.add_run('斜體').italic = True
# 添加圖片
doc.add_picture('tupian.jpg', width=Cm(5), height=Cm(10))
# 添加表格 doc.add_table(rows=行, cols=列)
# cells; 格子
records = [
['學號', '姓名', '成績'],
['101', '小紅', '98'],
['102', '小明', '95'],
['103', '小李', '100']
]
table = doc.add_table(rows=4, cols=3, style='Table Grid')
for row in range(4):
cells = table.rows[row].cells
for col in range(3):
cells[col].text = str(records[row][col])
# 添加分頁
doc.add_page_break()
doc.save('測試.docx')
案例:請假條
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx import Document
from docx.shared import Pt, Inches
from docx.oxml.ns import qn
doc = Document()
# 全局字體設置
doc.styles['Normal'].font.name = u'宋體'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')
# 1、標題
title = doc.add_paragraph()
title1 = title.add_run('公司員工請假條') # 內容
title1.font.size = Pt(20) # 設置字體大小
title1.bold = True # 加粗
title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 居中
# 2、正文
article1 = doc.add_paragraph()
a1 = article1.add_run('__________部:')
article2 = doc.add_paragraph()
a2 = article2.add_run(
'因________________________________________,特向您請事假____天。請假時間自_____年___月___日至_____年___月___日。這段時間內原計劃安排的課程已做好處理,希望領導批准。'
)
# 首行縮進 負值表示懸掛縮進
article2_format = article2.paragraph_format
article2_format.first_line_indent = Inches(0.3)
article3 = doc.add_paragraph()
a3 = article3.add_run('請假人:') # 內容
article3.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
article3_format = article3.paragraph_format
article3_format.right_indent = Inches(0.9)
nowData = doc.add_paragraph()
n3 = nowData.add_run('年 月 日') # 內容
nowData.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
nowData_format = nowData.paragraph_format
nowData_format.right_indent = Inches(0.3)
# 這一步調整文件格式爲居中
doc.save('test.docx')