日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python 實現自動化Excel報表的步驟

瀏覽:222日期:2022-06-23 15:32:38

好幾個月沒有寫筆記了, 并非沒有積累, 而是有點懶了. 想想還是要續上, 作為工作成長的一部分哦.

最近有做一些報表, 但一直找不到一個合適的報表工具, 又實在不想寫前端, 后端... 思來想去, 感覺 Excel 就一定程度上能做可視化的, 除了不能動態交互外, 其他都挺好. 今天分享的就是一個關于如何用 Py 來自動化Excel 報表, 解放雙手, 提高工作效率哦.

總體解決方案

Python 實現自動化Excel報表的步驟

輸出報表

當然是測試用的假數據啦.

Python 實現自動化Excel報表的步驟

自動化Py腳本

基本思路: 1. 準備模板數據需要的 SQL 2. 用 Pandas 連接 數據庫 并執行 SQL, 返回 DataFrame 3. 用 Xlwings 直接打開 Excel, 并將這些 DataFrame 填充到 寫死的 單元格4. 保存并退出

具體代碼如下哦:

import pandas as pd import xlwings as xwimport pymssql# 各品類月同期 def get_last_year_sale(start_date, end_date): '''各品類同期銷量, 對比19年''' sql_01 = f''' SELECT 品類 , SUM(數量) AS QTY FROM XXX WHERE 是否電商 = 1 AND 銷售時間 BETWEEN DATEADD(YEAR, -2, ’{start_date}’) AND DATEADD(YEAR, -2, ’{end_date}’) GROUP BY 品類 ''' df = pd.read_sql(sql_01, con=con) df_xtc = df[df[’品類’] == ’A品類’][[’品類’, ’QTY’]] df_bbk = df[df[’品類’] == ’B品類’][[’品類’, ’QTY’]] return df_xtc, df_bbk def get_anget_sale(start_date, end_date): '''返回各品類, 各區域的時間段銷量''' sql = f''' SELECT 品類 , AGENT , SUM(數量) AS QTY , ROW_NUMBER()OVER(PARTITION BY 品類 ORDER BY SUM(數量) DESC) MY_RANK FROM XXX WHERE 是否電商 = 1 AND 銷售時間 BETWEEN ’{start_date}’ AND ’{end_date}’ GROUP BY AGENT, 品類 ''' df = pd.read_sql(sql, con=con) df_xtc = df[df[’品類’] == ’A品類’][[’AGENT’, ’QTY’]] df_bbk = df[df[’品類’] == ’B品類’][[’AGENT’, ’QTY’]] df_pad = df[df[’品類’] == ’C品類’][[’AGENT’, ’QTY’]] return df_xtc, df_bbk, df_pad def get_machine_sale(start_date, end_date): '''返回各品類, 各區域的時間段銷量''' sql = f''' SELECT 品類 , 機型 , SUM(數量) AS QTY , ROW_NUMBER()OVER(PARTITION BY 品類 ORDER BY SUM(數量) DESC) MY_RANK FROM V_REALSALE WHERE 是否電商 = 1 AND 銷售時間 BETWEEN ’{start_date}’ AND ’{end_date}’ GROUP BY 機型, 品類 ''' df = pd.read_sql(sql, con=con) df_xtc = df[df[’品類’] == ’A品類’][[’機型’, ’QTY’]] df_bbk = df[df[’品類’] == ’B品類’][[’機型’, ’QTY’]] return df_xtc, df_bbk # main con = pymssql.connect(’xxxxx’, ’sxxx’, ’xxxxxx’, ’xxxxx’)# 基礎配置: 根據用戶輸入當前日期, 輸出當月, 當季度第一天 print('歡迎哦, 此小程序專門為XX看板做數據自動更新呢~')print()today = input('請輸入截止日期(昨天), 形如: 2021/5/20 按回車結束: ')if len(today.split(’/’)) != 3: raise '日期格式輸入錯誤!!, 請按照形如 ’2021/5/20’的格式重新輸入'else: m_cur = today.split(’/’)[1] m_first_day = ’2021/’ + m_cur + ’/1’# 季度第一天 if m_cur in (’1’, ’01’, ’2’, ’02’, ’3’, ’03’): q_time_start = ’2021/1/1’ elif m_cur in (’4’, ’04’, ’5’, ’05’, ’6’, ’06’): q_time_start = ’2021/4/1’ elif m_cur in (’7’, ’07’, ’8’, ’08’, ’9’, ’09’): q_time_start = ’2021/7/1’else: q_time_start = ’2021/10/1’print()print('正在開始更新....')print('提示, 接下看到閃退, 是正常現象, 就程序模擬人去打開文件, 填充數據, 不要緊張哦~~~')# 去年月, 季度同期 df_mm_xtc, df_mm_bbk = get_last_year_sale(m_first_day, today)df_qq_xtc, df_qq_bbk = get_last_year_sale(q_time_start, today)# 當月各地區累積銷量df_m_xtc, df_m_bbk, df_m_pad = get_anget_sale(m_first_day, today)# 各地區當季度銷量 df_q_xtc, df_q_bbk, df_q_pad = get_anget_sale(q_time_start, today)# 各機型當季度銷量 df_q_type_xtc, df_q_type_bbk = get_machine_sale(q_time_start, today) # 過濾掉 銷量為0的型號 df_q_type_xtc = df_q_type_xtc[df_q_type_xtc.QTY > 0]df_q_type_xtc.replace(’Z6áÛ·å°æ’, ’Z6巔峰版’, inplace=True)df_q_type_bbk = df_q_type_bbk[df_q_type_bbk.QTY > 0]# 打開excel 模板 等待數據填充 app = xw.App(visible=True, add_book=False)app.display_alerts = False # 關閉一些提示信息,可以加快運行速度。 默認為 True。app.screen_updating = Truewb = app.books.open('XXX_全品類_看板.xlsx')data_sht = wb.sheets[’數據’]# 19年當月同期銷量data_sht.range(’B9’).value = df_mm_xtc.valuesdata_sht.range(’G9’).value = df_mm_bbk.values# 當季度同比data_sht.range(’B10’).value = df_qq_xtc.valuesdata_sht.range(’G10’).value = df_qq_bbk.values# 填充各品類當月銷量, 注意單元格是寫死的哦data_sht.range(’I72’).value = df_m_xtc.valuesdata_sht.range(’T72’).value = df_m_bbk.valuesdata_sht.range(’AE72’).value = df_m_pad.values# 填充當季度銷量, 同理是寫死的data_sht.range(’A54’).value = df_q_xtc.valuesdata_sht.range(’F54’).value = df_q_bbk.valuesdata_sht.range(’K54’).value = df_q_pad.values# 填充當季度各型號, 同理是寫死的data_sht.range(’A21’).value = df_q_type_xtc.valuesdata_sht.range(’F21’).value = df_q_type_bbk.valueswb.save()app.quit()print()print('~~更新結束了哦~~')print()input('請按任意鍵退出~~')print()print(’BYE~~ 人生若只如初見呢~~’)打包 EXE 桌面小程序

最好用一個純凈的 虛擬環境打包.

終端命令: python -m venv 虛擬環境名稱

然后進入腳本目錄下, 進行打包哦.

pyinstaller main.py -F

Python 實現自動化Excel報表的步驟

打包成功后的樣子.

Python 實現自動化Excel報表的步驟

雙擊運行即可哦.

Python 實現自動化Excel報表的步驟

這時候再重新打開該目錄下的 Excel 模板, 發現數據已經自動更新了.

我現在真的感受到, 用開發的思維做一些腳本工具, 真的會極大提高我現在當文員的很多重復性工作哦!

以上就是Python 實現自動化Excel報表的步驟的詳細內容,更多關于python 自動化Excel報表的資料請關注好吧啦網其它相關文章!

標簽: python
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品久久久久久久| 国产精品久久久免费| 国产69精品久久| 国产日本久久| 亚洲欧美网站在线观看| 99热精品久久| 亚洲成人精品| 91精品电影| 黄色免费成人| 美女91精品| 日韩中文字幕一区二区三区| 丝瓜av网站精品一区二区| 性欧美精品高清| 蜜臀av性久久久久蜜臀aⅴ流畅| 鲁大师影院一区二区三区| 久久性天堂网| 一区二区电影| 亚洲精品裸体| 青草综合视频| 欧美交a欧美精品喷水| 国产精品久久久一区二区| 久久久久久久久成人| 大香伊人久久精品一区二区| 日韩av在线播放网址| 成人看片网站| 亚洲精品一二三区区别| 日韩精品一二区| 91欧美极品| 精品久久久中文字幕| 日韩欧美一区免费| 一本色道精品久久一区二区三区| 一本一道久久a久久| 国产毛片精品| 国产麻豆久久| 男人的天堂久久精品| 日韩在线电影| 欧美亚洲三级| 国产99在线| 综合日韩av| 99久久久久国产精品| 日本中文字幕视频一区| 天堂va欧美ⅴa亚洲va一国产| 婷婷亚洲五月| 婷婷精品在线| 国产白浆在线免费观看| 久久av一区| 99riav1国产精品视频| 日本亚洲不卡| 国产精品精品国产一区二区| 国产精品91一区二区三区| 日韩欧美中文字幕电影| 国产欧美三级| 亚洲精品一区二区妖精| 国产乱码精品一区二区亚洲| 三级精品视频| 日韩av午夜在线观看| 九色porny丨国产首页在线| 99在线精品视频在线观看| 国产乱人伦丫前精品视频| 不卡av一区二区| 国产精品久久久久久久久久妞妞 | 亚洲在线国产日韩欧美| 18国产精品| 欧美日韩精品一区二区视频| 另类专区亚洲| 亚洲免费影视| 国产欧美在线观看免费| 久久在线免费| 蜜桃久久久久| 蜜臀久久久久久久| 亚洲精品一级二级| 国产精品免费大片| 99精品99| 精品国产乱码久久久| 婷婷亚洲五月色综合| 精品无人区麻豆乱码久久久| 久久成人一区| 欧美/亚洲一区| 精品一区二区三区在线观看视频 | 91亚洲国产| 日韩精品第一| 亚洲黄页一区| 国产成人精品一区二区三区免费| 久久亚洲风情| 91精品一区国产高清在线gif| 国产乱人伦精品一区| 在线精品观看| 日韩中文在线电影| 国产麻豆精品| 亚洲日韩视频| 午夜精品免费| 久久毛片亚洲| 久久精品国产成人一区二区三区| 亚洲乱码一区| 国产亚洲永久域名| 激情综合在线| 999久久久精品国产| 久久男人av| 国产美女亚洲精品7777| 日韩欧美精品一区二区综合视频| 欧美久久精品一级c片| 成人精品国产亚洲| 亚洲综合婷婷| 亚洲欧洲一区| 免费不卡中文字幕在线| 日韩高清不卡| 久久男人av资源站| 精品国产不卡一区二区| 欧美激情视频一区二区三区免费 | 黄色亚洲大片免费在线观看| 欧美精品日日操| 国产一区二区三区不卡视频网站 | 国产精品一线| 久久国产尿小便嘘嘘| 亚洲2区在线| 亚洲人成网站在线在线观看| 国产免费成人| 亚洲深夜影院| 99riav国产精品| 国产免费成人| 免费看欧美美女黄的网站| 亚洲一区二区毛片| 亚洲一区二区三区高清| 久久不射网站| 在线观看亚洲精品福利片| 蜜桃视频免费观看一区| 1024精品久久久久久久久| 久久久人人人| 99久久久久| 好看的av在线不卡观看| 在线一区免费| 国产亚洲在线| 亚洲伊人精品酒店| 日韩国产在线不卡视频| 欧美日韩亚洲一区| 国产精品久久久久77777丨| 你懂的亚洲视频| 高清在线一区| 99久久亚洲精品蜜臀| 在线视频观看日韩| 日韩视频免费| 国产美女精品| 亚洲精品高潮| 国产精品第一| 手机在线电影一区| 91精品国产成人观看| 伊人影院久久| 午夜亚洲福利| 欧美激情视频一区二区三区免费| 神马久久午夜| 欧美精品激情| 日本va欧美va瓶| 久久99免费视频| 国产精品毛片一区二区在线看| 日韩大片在线观看| 成人看片网站| 亚洲国产不卡| 日本综合视频| 成人台湾亚洲精品一区二区| 日韩精品看片| 在线观看视频免费一区二区三区| 国产亚洲一区二区三区啪| 精品精品99| 91精品99| 久久黄色影视| 999久久久国产精品| 亚洲久久一区| 国产v日韩v欧美v| 蜜臀久久99精品久久久画质超高清| 日本成人在线不卡视频| 精品女同一区二区三区在线观看| 久久久亚洲一区| 日韩一二三区在线观看| 高清日韩欧美| 久久香蕉精品| 国产成人a视频高清在线观看| 韩国久久久久久| 男女男精品网站| 国内一区二区三区| 99国产精品久久久久久久| 国产精品一区高清| 日韩免费久久| 婷婷精品久久久久久久久久不卡| 日本一区二区高清不卡| 亚洲天堂av资源在线观看| 91日韩在线| 中文字幕亚洲精品乱码| 国际精品欧美精品| 丝袜国产日韩另类美女| 国模大尺度视频一区二区| 亚洲一卡久久| 不卡专区在线| 日韩区欧美区| 亚洲天堂成人| 国产精品久久久网站| 国产偷自视频区视频一区二区| 国产精品分类| 蜜桃久久精品一区二区| 肉色欧美久久久久久久免费看| 日本aⅴ免费视频一区二区三区|