python excel xlwings_python excel神器xlwings
(–本文是個人學習和使用過程中的總結,如有錯誤歡迎指正 )
最近工作需要整理將近60位同事的周報合并到一個excel中,每周都會占用的大量的時間。希望把這個工作自動化,網上看了下基本都是用vba編程實現這一功能。由于沒有使用過vba,希望使用自己會的東西去實現。
我們的周報模板大致是這個樣子的:
搜了下python操作excel的包,看到最多的是xlrd和xlwt。我的操作其實很簡單就是拷貝每一個excel中的內容并粘貼到一個匯總的excel,但這兩個包好像并不符合我的要求。
偶然間看到xlwings這個python包,使用這個包基本可以實現你在excel中的操作,如選中B5 到J20 這些單元格中的數據。這正是我想要的,寫了個簡單的腳本實現周報的整理,在這里記錄下。
使用中參考了xlwings官方文檔
我主要使用了WorkBook、Sheet、Range這三個。
import xlwings as xw
#app_visible=False 不打開excel窗口
wb = xw.Workbook(path), app_visible=False)
detail_sheet = xw.Sheet(unicode("任務詳細信息", "utf-8"))
#獲取有數據的最大行數,由于我們單個excel數據不會超過幾十行,我使用的是B4:I40
last_row_index = xw.Range(detail_sheet, "B4").table.last_cell.row
#確定我們選取的數據范圍,如: B4:I20
rg = "B4:I" + str(last_row_index)
#獲取劃定范圍單元格中的數據
work_detail = xw.Range(detail_sheet, rg).value
#關閉打開的excel
wb.close()
接下來就是將work_detail 獲取到的數據拷貝到我們匯總的excel中,代碼幾乎一致
target_excel_path = u"F:\經分應用產品線小組周報模板.xlsx"
wb_target = xw.Workbook(target_excel_path, app_visible=False)
cr_sheet = xw.Sheet(u"任務詳細信息")
#清空內容,單不清空格式
xw.Range(cr_sheet, "B4:I200").clear_contents()
xw.Range(cr_sheet, "B4").table.value = work_detail
wb_target.save(u"F:\經分應用產品線小組周報.xlsx")
wb_target.close()
(PS 后面希望加入自動添加數據透視圖的功能,暫時還沒找到這方面的接口)
好了,以后只需要run一下python腳本,自動整理并且發送郵件給負責人。
搞定 。。。。。。
總結
以上是生活随笔為你收集整理的python excel xlwings_python excel神器xlwings的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无法使用前导 .. 在顶级目录上退出
- 下一篇: matlab语言转化为python语言_