word操做
如何使用python的win32com模塊實現將doc類型文件轉成docx類型的文件python
安裝win32com模塊:pip3 install pypiwin32app
import os from win32com.client import Dispatch, DispatchEx, constants def doc_to_docx(f_path): w = Dispatch('Word.Application') # w = DispatchEx('Word.Application') # 啓動獨立進程 w.Visible = 0 # 後臺運行 w.DisplayAlerts = 0 # 不警告 # 打開文件 doc = w.Documents.Open(f_path) # 新建docx類型文件 new_path = os.path.splitext(f_path)[0] + '.docx' ''' word_doc = w.Documents.Add() # 建立新的文檔 # 插入文字 myRange = doc.Range(0,0) myRange.InsertBefore('Hello python!') # 使用樣式 wordSel = myRange.Select() wordSel.Style = constants.wdStyleHeading1 ''' # 保存 doc.SaveAs(new_path, 16, False, "", True, "", False, False, False, False) # 參數一、2必須傳,若是文檔有密碼保護則須要傳第四個參數,參數2能夠是12,或者16,或其餘適合的類型,其他參數都是默認值,不傳也能夠 # 關閉退出 doc.Close() w.Quit() # 刪除源文件 os.remove(f_path) return new_path doc_to_docx(r"C:\Users\Desktop\新建 Microsoft Word 文檔.doc")
安裝模塊python-docx:pip3 install python-docxui
往Word文檔中插入圖片,並設置寬度
from docx import Document def insert_img(): msg = '插入圖片' image1 = r"C:\Users\Pictures\Camera Roll\1.jpg" image2 = r"C:\Users\Pictures\Saved Pictures\IMG_20180214_113145.jpg" # 保存在本地的圖片 # 實例化對象 doc = Document() doc.add_paragraph(msg) # 添加文字 doc.add_picture(image1, width=Inches(3)) # 添加圖, 設置寬度 doc.add_picture(image2, width=Inches(5)) doc.save(r"C:\Users\rongg\Desktop\word_添加圖片.docx") # 保存路徑
Excel操做
注:只能操做已經存在的Excel表格,不存在會報錯spa
from win32com.client import Dispatch def excel_write(f_path, data, pwd=123): excel_app = Dispatch('Excel.Application') excel_app.Visible = 0 # 後臺運行 excel_app.DisplayAlerts = 0 # 禁止彈窗 # 打開Excel文件, 有密碼時前三個參數必須傳 xl_handle = excel_app.Workbooks.Open(f_path, UpdateLinks=3, ReadOnly=False, Format=None, Password=pwd) # 指定sheet頁 sheet1 = xl_handle.Worksheets('Sheet1') for i in range(len(data)): for j in range(len(data[0])): sheet1.Cells(i + 1, j + 1).Value = data[i][j] print('done!') # 選擇單元格 range_obj = sheet1.Range('A2') range_obj.EntireRow.Insert() # 在選擇的單元格前插入行 # 設置邊框 ''' 5 雙點虛線 6 加粗點虛線 7 單實線 8 點虛線 9 雙實線 10 單點虛線 ''' range_obj.Borders.LineStyle = 7 # 爲單元格賦值 sheet1.Cells(8, 1).Value = 'Hello' sheet1.Cells(8, 2).Value = 'Excel' # 關閉退出 xl_handle.Close(True) # True 必須傳入,不然不會保存 excel_app.Quit() excel_write( r"C:\Users\Desktop\新建 Microsoft Excel 工做表.xlsx", [['name', 'age', 'gender'], ['jack', 22, 'man'], ['bob', 18, 'man'], ['alice', 19, 'woman']] )
執行後的結果以下: excel
後續更新。。。。code