2021-01-26 Python自动化办公-处理word文档
生活随笔
收集整理的這篇文章主要介紹了
2021-01-26 Python自动化办公-处理word文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python自動化辦公-處理word文檔
年底項目投標,需要整理大量的內容,標書的很多內容是其實是之前的標書重復的,可以把對應的各個部分內容合并,然后再處理格式等。如果采用常規操作每次操作需要打開子目錄——>找到word文檔——>全選復制——>粘貼到新文檔——>調整格式——>核對檢查,期間出現錯誤還得用更多的時間,這太浪費時間了!
采用Python的組間對象模型(COM)設計了一個同時對多個word文件進行合并的程序,代碼如下:????
import win32com.client as win32 import os word = win32.gencache.EnsureDispatch('Word.Application') #啟動word對象應用 word.Visible = False path?=?r'D:\doc' files = [] for filename in os.listdir(path):filename = os.path.join(path,filename)files.append(filename) #新建合并后的文檔 output = word.Documents.Add() for file in files:output.Application.Selection.InsertFile(file)#拼接文檔 #獲取合并后文檔的內容 doc = output.Range(output.Content.Start, output.Content.End) output.SaveAs(r'D://doc//result.docx')?#保存 output.Close()?
大概等了兩三分鐘一份110多頁、2萬多字的報告就自動完成了,
win32com庫的一些其他的用法
1、添加多級標題
import win32com.client as win32from win32com.client import constantsdoc_app = win32.gencache.EnsureDispatch('Word.Application')#打開word應用程序 doc_app.Visible =1#設置應用程序可見 doc = doc_app.Documents.Add()#創建新得文檔#添加標題1 ##添加文字 parag = doc.Paragraphs.Add()#添加新得段落 parag_range = parag.Range parag_range.Text ='標題1' ###設置樣式 parag_range.Style = doc.Styles("Heading 1")#Heading 1 是樣式的名稱border = parag.Borders(constants.wdBorderBottom) border.LineStyle = constants.wdLineStyleSingle border.LineWidth = constants.wdLineWidth225pt#添加標題2 parag_range.Text +='\n' parag = doc.Paragraphs.Add() parag_range = parag.Range parag_range.Text ='標題2' parag_range.Style = doc.Styles("Heading 2")#二級標題 ##添加正文 parag_range.Text +='\n' parag = doc.Paragraphs.Add() parag_range = parag.Range parag_range.Text ='正文' parag_range.Style = doc.Styles("Normal")#正文?
使用add不會添加新的一個段落,而是指向當前所在的段落。
2、插入目錄
import win32com.client as win32 from win32com.client import constantsdoc_app = win32.gencache.EnsureDispatch('Word.Application') doc_app.Visible =1 doc = doc_app.Documents.Add()#添加標題1 ##添加文字 parag = doc.Paragraphs.Add() parag_range = parag.Range parag_range.Text ='標題1' ###設置樣式 parag_range.Style = doc.Styles("Heading 1")#Heading 1 是樣式的名稱border = parag.Borders(constants.wdBorderBottom) border.LineStyle = constants.wdLineStyleSingle border.LineWidth = constants.wdLineWidth225pt#添加標題2 parag_range.InsertParagraphAfter()#在當前位置之后,新插入一行 parag_range = parag.Range parag_range.Text ='標題2' parag_range.Style = doc.Styles("Heading 2")#二級標題 ##添加正文 parag_range.InsertParagraphAfter() parag_range = parag.Range parag_range.Text ='正文' parag_range.Style = doc.Styles("Normal")#正文 ##插入目錄 ##parag_range = doc.Paragraphs(1)##找到第一行 doc.Paragraphs(1).Range.InsertParagraphBefore()#在首行之前插入一行,用于插入目錄 parag_range = doc.Paragraphs(1).Range#指向新插入的行 #插入目錄 ##從當前指向的位置插入目錄,使用默認樣式設置目錄樣式,包含3級標題 doc.TablesOfContents.Add(Range=parag_range, UseHeadingStyles=True,LowerHeadingLevel=3)總結
以上是生活随笔為你收集整理的2021-01-26 Python自动化办公-处理word文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-01-22 使用 Docker
- 下一篇: 2021-01-26 粒子群优化算法(P