1. 程式人生 > 程式設計 >如何基於python把文字圖片寫入word文件

如何基於python把文字圖片寫入word文件

安裝程式碼

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)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。