天天看點

python win32com word_python win32com 操作word總結

這兩天研究python操作word文檔,因為相關的文檔比較少,磕磕絆絆的各種搜尋終于把我要實作的功能大體實作了,代碼不多,時間主要耗費在中文亂碼上。

實作的内容

打開word文檔

讀取表格

表格插入行

向表格中填寫内容

文檔另存為

環境

python 2.7

檔案儲存的編碼格式是utf-8

代碼

#子產品引用

import win32com

form win32com.client import Dispatch,DispatchEx

#打開word文檔

word= Dispatch('Word.Application')

word.Visiable=1

path="c:/model.docx"

doc = word.Documents.Open(FileName=path,Encoding='gbk')

#中文路徑亂碼問題處理

path="c:/文檔.docx"

FileName=path.decode("utf8")

#讀取表格

table = doc.Tables[0]

#表格插入行

table.Cell(0,0).Select()

word.Selection.InsertRowsBelow(1) #目前行的下面插入一行

#向表格中填寫内容

table.Cell(0,0).Range.Text='abc'

str = "你好"

#中文寫入亂碼處理

table.Cell(0,1).Range.Text=str.decode("utf8")

table.Cell(0,2).Range.Text=(u'%s' % str)

#文檔另存為

path="c:/result.docx"

doc.SaveAs(path)

思考

1、在進行中文亂碼的時候,各種嘗試,嘗試的都無望了,最後感覺是瞎貓床死耗子,才蒙對的。感覺自己對編碼原理這塊了解太少,有時間需要把這方面的知識好好研究一下。

2、在無望的時候,要以一個什麼樣的心态對待這個問題,是放棄還是堅持,這個尺度不好把握。在寫這篇文章的時候,中文寫入亂碼這塊還沒解決,我都已經放棄了,雖然放棄了,我感覺有必要記錄一下我都做了那些嘗試,在記錄的過程中,我突發奇想的在我的程式中删除了一些代碼,結果亂碼問題卻意外的解決了。可能是我這方面經驗太少,還是要多多嘗試,不斷的積累,以後可能會更好的把握這個度吧。