Python批量創建word文檔(1)- 純文字


Python創建word文檔,任務要求:小楊在一家公司上班,每天都需要給不同的客戶發送word文檔,以告知客戶每日黃金價格。最后貼上自己的聯系方式。代碼如下:

 1 '''
 2     #python根據需求新建word文檔
 3     #首先安裝python-docx
 4     #任務需求,小楊在一家公司上班兒,每天都需要給客戶發送當日黃金價格,內容如下
 5     ######################關於下達2020年11月11日的黃金價格通知########### -這是標題
 6     #然后是稱呼,尊敬的XX,你好:
 7     #然后是正文內容:    根據公司安排,
 8 '''
 9 from docx import Document
10 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
11 from docx.shared import Pt
12 from docx.oxml.shared import qn
13 import time
14 from time import sleep
15 import os
16 
17 #定義今日黃金價格
18 price = input("請輸入今日黃金價格:")
19 #定義客戶列表
20 company_list = ['客戶1','客戶2','客戶3','客戶4','客戶5','客戶6','客戶7','客戶8','客戶9','客戶10']
21 #定義日期
22 today = time.strftime("%Y{y}%d{m}%m{d}",time.localtime()).format(y='',m='',d='')
23 print(today)
24 
25 #開始循環客戶列表
26 for i in company_list:
27     #開始新建文檔
28     document = Document()
29     #設置文檔默認樣式
30     document.styles['Normal'].font.name = u'宋體'
31     #設置整個文檔中文字體默認格式
32     document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋體')
33 
34     #新建自然段1,即文檔標題
35     p1 = document.add_paragraph()
36     #設置自然段1居中對齊
37     p1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
38     #向自然段1添加內容
39     run1 = p1.add_run("關於下達%s的黃金價格通知" % (today))
40     #設置文字字體為微軟雅黑
41     run1.font.name = '微軟雅黑'
42     run1.font._element.rPr.rFonts.set(qn('w:eastAsia'),u'微軟雅黑')
43     #設置文字加粗
44     run1.font.bold = True
45     #設置文字大小
46     run1.font.size = Pt(16)
47     #設置段前段后距離
48     p1.space_after = Pt(5)
49     p1.space_before = Pt(5)
50 
51     #新建自然段2,即文檔稱呼,默認
52     p2 = document.add_paragraph()
53     p2.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #這段其實可以不用寫,因為word文檔默認格式就是靠左對齊
54     #向自然段添加內容
55     run2 = p2.add_run("尊敬的" + i + ":")
56     #設置自然段的字體
57     run2.font.name = '仿宋_GB2312'
58     #設置中文字體格式
59     run2._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
60     #設置字體的大小
61     run2.font.size = Pt(12)
62     #設置字體加粗
63     run2.font.bold = True
64 
65     #添加自然段3,即文檔的通知內容
66     p3 = document.add_paragraph()
67     #設置自然段3的對齊方式
68     p3.aligment = WD_PARAGRAPH_ALIGNMENT.LEFT #word文檔本來的格式是靠左,這段其實可以不用寫
69     #向第三自然段添加內容
70     run3 = p3.add_run('    根據公司安排,為提供更優質客戶服務,我公司擬定今日黃金價格為%s,特此通知。' % price)
71     #設置自然段3的字體
72     run3.font.name = '隸書'
73     #設置自然段3內容的中文字體格式
74     run3._element.rPr.rFonts.set(qn('w:eastAsia'),u'隸書')
75     #設置自然段3的字體大小
76     run3.font.size = Pt(12)
77     #設置自然段3內容字體為加粗
78     run3.font.bold = True
79 
80     #添加自然段4,即聯系方式
81     p4 = document.add_paragraph()
82     #設置自然段4靠右對齊
83     p4.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
84     #向自然段4添加內容
85     run4 = p4.add_run('(聯系人:小楊, 電話:188888888888)')
86     #設置自然段4的內容的字體
87     run4.font.name = '仿宋_GB2312'
88     #設置第四自然段中文字體為仿宋
89     run4._element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312')
90     #設置第四自然段字體加粗
91     run4.font.bold = True
92     #設置第四自然段字體大小
93     run4.font.size = Pt(12)
94 
95     if os.path.exists('%s-價格通知.docx' % i):
96         os.remove('%s-價格通知.docx' % i)
97     sleep(3)
98     #每次循環完保存一次文檔
99     document.save('%s-價格通知.docx' % i)

效果截圖:

注意:

1,word文檔格式問題,標題(居中),稱呼(頂格,也就是靠左),內容(縮進四格,靠左),結語(靠右);

2,利用python批量新建word文檔,里面的格式如果接觸過css就很好理解,分成三層,第一層是文檔本身,是一個大div,第二層是包含在第一層里的自然段,也就是第二層div,第三層是自然段里的文字內容,也就是這個項目里的最后一層div。

3,文檔可以設置默認格式,段落可以設置默認格式,段落內容也可以設置默認格式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM