如何基於python把文字圖片寫入word文件
阿新 • • 發佈:2020-08-01
安裝程式碼
pip install python-docx
1.批量化往word檔案中新增大批量重複的資料
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'] today1 = time.strftime("%Y-%m-%d",time.localtime()) today2 = time.strftime("%Y/%m/%d",time.localtime()) 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'宋體') # 初始化建立第一個自然段 pl = document.add_paragraph() #對齊方式為居中,沒有這句話預設左對齊 pl.alignment = WD_ALIGN_PARAGRAPH.CENTER run1 = pl.add_run('關於下達%s產品價格的通知'%(today)) run1.font.name = '微軟雅黑' run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'微軟雅黑') run1.font.size = Pt(21) #是否加粗 run1.font.bold = True #前後距離5磅 pl.space_before = Pt(5) pl.space_after = 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('%s-價格通知.docx'% i)
2.新增圖片
from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.shared import Pt #磅數 from docx.oxml.ns import qn #中文格式 from docx.shared import Inches #圖片尺寸 #以上是docx庫中需要用到的部分 import time price = input('請輸入今日價格:') company_list = ['客戶1','客戶6'] today = time.strftime("%Y{y}%m{m}%d{d}",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'宋體') document.add_picture('banner.jpg',width=Inches(6)) # 初始化建立第一個自然段 pl = document.add_paragraph() # 對齊方式為居中,沒有這句話預設左對齊 pl.alignment = WD_ALIGN_PARAGRAPH.CENTER run1 = pl.add_run('關於下達%s產品價格的通知' % (today)) run1.font.name = '微軟雅黑' run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'微軟雅黑') run1.font.size = Pt(21) # 是否加粗 run1.font.bold = True # 前後距離5磅 pl.space_before = Pt(5) pl.space_after = Pt(5) # 初始化建立第二個自然段 p2 = document.add_paragraph() run2 = p2.add_run(i + ":") # 對客戶的稱呼 run2.font.name = '仿宋_GB2312' run2.element.rPr.rFonts.set(qn('w:eastAsia'),特此通知." % price) # 對客戶的稱呼 run3.font.name = '仿宋_GB2312' run3.element.rPr.rFonts.set(qn('w:eastAsia'),u'仿宋_GB2312') run3.font.size = Pt(16) # 是否加粗 run3.font.bold = True table = document.add_table(rows=3,cols=3,style='Table Grid') table.cell(0,0).merge(table.cell(0,2)) table_run1 = table.cell(0,0).paragraphs[0].add_run('xx產品報價表') table_run1.font.name = u'隸書' table_run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'隸書') table.cell(1,0).text = '日期' table.cell(1,1).text = '價格' table.cell(1,2).text = '備註' table.cell(2,0).text = today table.cell(2,1).text = str(price) table.cell(2,2).text = '' # 初始化建立第四個自然段 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.add_page_break() p5 = document.add_paragraph() run4 = p5.add_run('此處是廣告') document.save('%s-價格通知.docx' % i)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。