由于近日寫工作匯報 交一份概要和 excel版本 發(fā)現(xiàn)手寫 太麻煩 想寫個代碼來自動 讀取一個文本中的所有內(nèi)容 按需求寫入 對應(yīng)excel和概要中 自動完成
就找了找python 的類庫,發(fā)現(xiàn)了挺多小問題.和大家分享一下 如果對你有所幫助 請贊一下謝謝
如果追加寫 python xlrd模塊是復(fù)制讀取exlce xlwt 是負(fù)責(zé)寫 但是發(fā)現(xiàn)如果使用xlwt寫后 格式都沒有了,而且不能追加寫.
那么就需要使用 xlutils這個模塊
1.實現(xiàn)復(fù)制帶有 格式的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 '復(fù)制模版成功'except Exception ,e: print "模版文件復(fù)制失敗" pass
很簡單 關(guān)鍵代碼只有一句 將一個模版文件復(fù)制一份 將來我會用復(fù)制后的文件進(jìn)行追加寫操作
#使用 formatting_info=True 來復(fù)制帶有格式的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了 可以進(jìn)行 追加寫 或者 修改某個單元格數(shù)據(jù)的操作了 最后不要忘了 save()
wb.save(goal_file)
這里特別注意 復(fù)制的模版要是xls 后綴而不是xlsx 否則會拋出異常 xlrd 0.8版本后不支持 google了一下好像是這樣 所以模版要是xls格式的
而且要注意 不要去手動點開xls文件去修改里面的值,否則腳本執(zhí)行到最后save()這句話會拋出異常,試了很多次,希望大神可以指教下.
注意這兩點 實現(xiàn)追加寫就可以完成了.
以上這篇python excel使用xlutils類庫實現(xiàn)追加寫功能的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選