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