這篇文章主要介紹了關於python excel使用xlutils類庫實現追加寫功能的方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
由於近日寫工作彙報 交一份概要和 excel版本 發現手寫 太麻煩 想寫個代碼來自動 讀取一個文本中的所有內容 按需求寫入 對應excel和概要中 自動完成
就找了找python 的類庫,發現了挺多小問題.和大家分享一下 如果對你有所協助 請贊一下謝謝
如果追加寫 python xlrd模組是複製讀取exlce xlwt 是負責寫 但是發現如果使用xlwt寫後 格式都沒有了,而且不能追加寫.
那麼就需要使用 xlutils這個模組
1.實現複製帶有 格式的excel
from xlutils.copy import copytry: if not os.path.exists(goal_file) and os.path.exists(model_src) : shutil.copy(model_src,goal_file) print '複製模版成功'except Exception ,e: print "模版檔案複製失敗" pass
很簡單 關鍵代碼只有一句 將一個模版檔案複製一份 將來我會用複製後的檔案進行追加寫操作
#使用 formatting_info=True 來複製帶有格式的excel,否則追加寫後格式會丟失rb = xlrd.open_workbook(goal_file,formatting_info=True) #通過sheet_by_index()擷取的sheet沒有write()方法rs = rb.sheet_by_index(0) wb = copy(rb)#通過get_sheet()擷取的sheet有write()方法ws = wb.get_sheet(0)#獲得到sheet了 可以進行 追加寫 或者 修改某個儲存格資料的操作了 最後不要忘了 save()
wb.save(goal_file)
這裡特別注意 複製的模版要是xls 尾碼而不是xlsx 否則會拋出異常 xlrd 0.8版本後不支援 google了一下好像是這樣 所以模版要是xls格式的
而且要注意 不要去手動點開xls檔案去修改裡面的值,否則指令碼執行到最後save()這句話會拋出異常,試了很多次,希望大神可以指教下.
注意這兩點 實現追加寫就可以完成了.