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,文檔可以設置默認格式,段落可以設置默認格式,段落內容也可以設置默認格式