婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python 實現自動化Excel報表的步驟

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

熱門標簽:400電話申請服務商選什么 千陽自動外呼系統 工廠智能電話機器人 原裝電話機器人 清遠360地圖標注方法 平頂山外呼系統免費 江蘇客服外呼系統廠家 西藏智能外呼系統五星服務 在哪里辦理400電話號碼

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

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

總體解決方案

輸出報表

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

自動化Py腳本

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

具體代碼如下哦:

import pandas as pd 
import xlwings as xw
import 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 = True

wb = app.books.open("XXX_全品類_看板.xlsx")
data_sht = wb.sheets['數據']

# 19年當月同期銷量
data_sht.range('B9').value = df_mm_xtc.values
data_sht.range('G9').value = df_mm_bbk.values

# 當季度同比
data_sht.range('B10').value = df_qq_xtc.values
data_sht.range('G10').value = df_qq_bbk.values

# 填充各品類當月銷量, 注意單元格是寫死的哦
data_sht.range('I72').value = df_m_xtc.values
data_sht.range('T72').value = df_m_bbk.values
data_sht.range('AE72').value = df_m_pad.values

# 填充當季度銷量, 同理是寫死的
data_sht.range('A54').value = df_q_xtc.values
data_sht.range('F54').value = df_q_bbk.values
data_sht.range('K54').value = df_q_pad.values

# 填充當季度各型號, 同理是寫死的
data_sht.range('A21').value = df_q_type_xtc.values
data_sht.range('F21').value = df_q_type_bbk.values

wb.save()
app.quit()

print()
print("~~更新結束了哦~~")
print()
input("請按任意鍵退出~~")
print()
print('BYE~~ 人生若只如初見呢~~')

打包 EXE 桌面小程序

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

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

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

pyinstaller main.py -F

打包成功后的樣子.

雙擊運行即可哦.

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

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

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

您可能感興趣的文章:
  • python辦公自動化之excel的操作
  • 使用Python自動化Microsoft Excel和Word的操作方法
  • 基于Python的接口自動化讀寫excel文件的方法
  • Python+unittest+requests+excel實現接口自動化測試框架
  • python+excel接口自動化獲取token并作為請求參數進行傳參操作
  • python實現自動化報表功能(Oracle/plsql/Excel/多線程)
  • Python3+Requests+Excel完整接口自動化測試框架的實現
  • 基于python實現自動化辦公學習筆記(CSV、word、Excel、PPT)
  • Python辦公自動化之Excel(中)

標簽:西安 天水 日照 隨州 錦州 白城 股票 安慶

巨人網絡通訊聲明:本文標題《Python 實現自動化Excel報表的步驟》,本文關鍵詞  Python,實現,自動化,Excel,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python 實現自動化Excel報表的步驟》相關的同類信息!
  • 本頁收集關于Python 實現自動化Excel報表的步驟的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色综合天天综合狠狠| 91麻豆精品国产自产在线 | 在线观看一区二区视频| 日韩女优电影在线观看| 国产精品第13页| 狠狠久久亚洲欧美| 制服.丝袜.亚洲.另类.中文| 一区二区三区免费在线观看| 国产精品一卡二| 日韩午夜三级在线| 亚洲午夜久久久久久久久久久| 成人深夜在线观看| 欧美一区三区四区| 午夜视频一区二区| 日本高清不卡在线观看| 中文字幕制服丝袜成人av| 国产精品77777| 久久综合色天天久久综合图片| 亚洲成av人**亚洲成av**| 91福利精品视频| 亚洲美女偷拍久久| 97成人超碰视| 亚洲色图都市小说| 97久久超碰国产精品电影| 国产精品久久久久久久久免费樱桃| 国产福利精品一区| 国产三级欧美三级日产三级99| 九九在线精品视频| 久久久综合精品| 国产精品一二三四区| 久久免费电影网| 国产乱淫av一区二区三区| 国产日韩欧美一区二区三区综合| 国产乱人伦偷精品视频免下载| 久久久精品tv| 99国产精品久久久久| 亚洲另类中文字| 欧美人妇做爰xxxⅹ性高电影| 午夜国产不卡在线观看视频| 欧美精品丝袜久久久中文字幕| 五月天网站亚洲| 日韩欧美国产综合| 国产在线精品视频| 国产精品国产自产拍在线| 在线亚洲免费视频| 视频一区视频二区中文| 欧美一区二区三区小说| 国产一区二区三区观看| 国产精品私人影院| 欧美性生活影院| 久久精品久久综合| 国产精品免费丝袜| 欧美影视一区在线| 国内精品伊人久久久久影院对白| 国产精品国产a| 欧美高清www午色夜在线视频| 韩国成人福利片在线播放| 国产精品久久久久久久久免费相片 | 奇米777欧美一区二区| 国产亚洲综合av| 在线观看成人小视频| 另类小说视频一区二区| 中文字幕国产精品一区二区| 欧洲精品在线观看| 国产精品资源在线| 亚洲一区二区不卡免费| 2021久久国产精品不只是精品| 波多野结衣精品在线| 日本女人一区二区三区| 国产精品成人网| 日韩美一区二区三区| 不卡的av在线播放| 久久黄色级2电影| 亚洲影视资源网| 国产性天天综合网| 欧美一区日韩一区| 在线一区二区三区四区| 丁香六月久久综合狠狠色| 天堂午夜影视日韩欧美一区二区| 中文字幕一区二区三区精华液| 91精品欧美一区二区三区综合在| 91无套直看片红桃| 国产精品资源网| 久久99久久99| 日日夜夜免费精品视频| 怡红院av一区二区三区| 中文字幕av资源一区| 日韩精品在线一区二区| 欧美日韩一卡二卡| 色婷婷精品大在线视频| 国产精品1区2区3区在线观看| 免费三级欧美电影| 石原莉奈一区二区三区在线观看| 亚洲靠逼com| 亚洲人成网站精品片在线观看| 日韩欧美久久久| 日韩一级视频免费观看在线| 欧美色区777第一页| 日本韩国一区二区| 欧美在线一区二区| 欧美亚洲高清一区二区三区不卡| av在线不卡免费看| av欧美精品.com| 99视频国产精品| 不卡av在线免费观看| 波多野结衣在线aⅴ中文字幕不卡| 狠狠色丁香婷综合久久| 久久国产精品第一页| 精品一区二区三区在线观看| 日本不卡视频一二三区| 五月婷婷久久丁香| 日本中文在线一区| 久久99九九99精品| 国产成人av电影| a4yy欧美一区二区三区| 91视频.com| 欧美日韩大陆一区二区| 91麻豆精品国产91久久久更新时间 | 欧美经典一区二区| 中文字幕一区二区三区乱码在线| 国产精品美女视频| 一区二区在线看| 日本一不卡视频| 精品一区二区三区在线播放视频| 国产精品羞羞答答xxdd| 成人精品在线视频观看| 99这里只有久久精品视频| 欧美中文字幕不卡| 日韩一区二区免费视频| 久久免费偷拍视频| 亚洲欧美日韩国产综合在线| 亚洲午夜精品网| 久久精品国产免费| 不卡影院免费观看| 7777精品伊人久久久大香线蕉经典版下载 | 日韩中文字幕av电影| 久久99这里只有精品| 成人午夜视频在线| 欧美日韩国产综合久久| 久久婷婷久久一区二区三区| 中文字幕日韩av资源站| 舔着乳尖日韩一区| 国产成人鲁色资源国产91色综| 色av成人天堂桃色av| 精品成人佐山爱一区二区| 国产精品美女视频| 日本成人中文字幕在线视频| 粉嫩av一区二区三区在线播放| 在线一区二区观看| 久久久一区二区三区捆绑**| 综合电影一区二区三区| 男女视频一区二区| 91色视频在线| 久久先锋影音av| 亚洲r级在线视频| 成人av高清在线| 欧美一区二区三区视频在线观看 | 欧美一区二区在线不卡| 国产精品传媒在线| 国产一区二区在线观看免费 | 91视频xxxx| 国产片一区二区| 另类小说图片综合网| 欧美亚洲综合在线| 综合激情网...| 床上的激情91.| 精品美女在线播放| 日韩av一区二区三区四区| 99精品国产视频| 国产精品久久久久影视| 国产一本一道久久香蕉| 日韩欧美亚洲另类制服综合在线| 一区二区理论电影在线观看| 成人网页在线观看| 久久久久综合网| 经典一区二区三区| 91精品国产综合久久小美女 | 亚洲欧美精品午睡沙发| 粉嫩av一区二区三区在线播放| 日韩欧美一级二级三级| 日本中文一区二区三区| 制服丝袜在线91| 午夜国产不卡在线观看视频| 欧美在线不卡视频| 一区二区欧美国产| 欧美亚洲国产一区二区三区va | 亚洲动漫第一页| 色婷婷精品大在线视频| 国产精品免费免费| 91在线看国产| 亚洲男同性视频| 欧美吻胸吃奶大尺度电影| 一区二区三区在线不卡| 欧美性感一类影片在线播放| 亚洲免费观看高清完整版在线 | 亚洲大型综合色站| 欧美福利电影网| 久草这里只有精品视频| 久久久91精品国产一区二区精品| 国产精品伊人色|