1. 程式人生 > 實用技巧 >用pythondocx批量生成Word文件

用pythondocx批量生成Word文件

流程

安裝:pip install python-doc -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install python-docx

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt # 磅數
from docx.oxml.ns import qn # 中文格式
# 以上是docx庫中需要用到的部分
import time
price = input('請輸入今日價格:')
company_list = ['客戶1', '客戶2', '客戶3', '客戶4', '客戶5', '客戶6', '客戶7', '客戶8', '客戶9', '客戶10']
today = time.strftime("%Y{y}%m{m}%d{d}", time.localtime()).format(y='年', m='月', d='日')
# 獲取今日時間,整理成“年-月-日”的格式
for i in company_list:
# 針對每個客戶名生成不同文件
document = Document()
# 設定文件的基礎字型
document.styles['Normal'].font.name = u'宋體'
# 設定文件的基礎樣式
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')
# 初始化建立第一個自然段
p1 = document.add_paragraph()
# 對齊方式為居中,沒有這句的話預設左對齊。
p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 這裡是第一段的內容
run1 = p1.add_run('關於下達%s產品價格的通知' % (today))
# 設定西文字型
run1.font.name = '微軟雅黑'
# 設定中文字型
run1._element.rPr.rFonts.set(qn('w:eastAsia'), u'微軟雅黑')
# 設定字型大小為21磅
run1.font.size = Pt(21)
# 設定加粗
run1.font.bold = True
# 段後距離5磅
p1.space_after = Pt(5)
# 段前距離5磅
p1.space_before = Pt(5)
p2 = document.add_paragraph()
run2 = p2.add_run(i + ':')
# 這裡是對客戶的稱呼
run2.font.name = '仿宋_GB2312'
run2._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run2.font.size = Pt(16)
run2.font.bold = True
p3 = document.add_paragraph()
run3 = p3.add_run(' 根據公司安排,為提供優質客戶服務,我單位擬定了今日價格為%s元,特此通知。' % price)
run3.font.name = '仿宋_GB2312'
run3._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run3.font.size = Pt(16)
run3.font.bold = True
p4 = document.add_paragraph()
p4.alignment = WD_ALIGN_PARAGRAPH.CENTER
run4 = p4.add_run('(聯絡人:小楊 電話:18888888888)')
run4.font.name = '仿宋_GB2312'
run4._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')
run4.font.size = Pt(16)
run4.font.bold = True
document.save(r'D:\mycode\files\%s-價格通知.docx' % i) # 以“客戶名-價格通知”作為檔名儲存