婷婷综合国产,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
    成人黄色av电影| 在线成人午夜影院| 色激情天天射综合网| 日韩毛片高清在线播放| 在线观看日韩精品| 青青草原综合久久大伊人精品| 日韩欧美中文字幕一区| 国产一区二区影院| 亚洲激情一二三区| 成人av网在线| 亚洲国产精品人人做人人爽| 中文字幕在线免费不卡| 91麻豆福利精品推荐| 国产麻豆精品视频| 一区二区三区在线观看国产| 国产一区二区三区在线观看免费视频 | 一区二区三区四区不卡视频| 欧美一区二区免费视频| 欧美三级蜜桃2在线观看| 国产精品一区二区三区四区| 一区二区三区日韩| 国产制服丝袜一区| 一区二区三区在线免费观看| 久久久久高清精品| 欧美一区二区人人喊爽| 欧美艳星brazzers| 欧美一区二区啪啪| 国产v综合v亚洲欧| 久久精品国产精品亚洲综合| 一区二区不卡在线视频 午夜欧美不卡在| 日韩欧美另类在线| 欧美写真视频网站| 在线观看网站黄不卡| 大胆亚洲人体视频| 粉嫩av一区二区三区| 国产精品一二三区在线| av激情综合网| 国产欧美日韩三区| 久热成人在线视频| 日韩av午夜在线观看| 美女诱惑一区二区| 蜜臀a∨国产成人精品| 亚洲午夜在线电影| 亚洲精品久久久久久国产精华液| 国产精品视频第一区| 国产亚洲精品超碰| 久久综合一区二区| 久久久综合九色合综国产精品| 欧美精品乱码久久久久久按摩| 日本伊人精品一区二区三区观看方式| 亚洲综合免费观看高清完整版| 日韩一区日韩二区| 依依成人精品视频| 亚洲精品国产a久久久久久| 精品av综合导航| www激情久久| 中文文精品字幕一区二区| 国产精品国产自产拍在线| 中文字幕亚洲在| 亚洲蜜臀av乱码久久精品| 亚洲乱码中文字幕综合| 国产精品麻豆欧美日韩ww| 亚洲激情在线播放| 久久精品网站免费观看| 国产精品国产三级国产有无不卡 | 视频一区在线播放| 性做久久久久久久久| 亚洲国产激情av| 一区二区在线观看av| 国产欧美一二三区| 亚洲精品视频在线看| 亚洲一二三区不卡| 麻豆精品国产传媒mv男同| 国产精品主播直播| av中文字幕不卡| 欧美肥妇毛茸茸| 欧美日韩三级一区| 国产欧美日韩激情| 五月婷婷色综合| 狠狠色综合日日| 欧美三级电影在线观看| 久久综合九色综合欧美98| 亚洲18色成人| 成人在线一区二区三区| 欧美精品一区二| 亚洲黄色av一区| 国产在线视视频有精品| 国产精品99久久久| 色综合天天综合狠狠| 欧美激情在线观看视频免费| 天天影视色香欲综合网老头| 国产盗摄精品一区二区三区在线| 91色综合久久久久婷婷| 色一情一伦一子一伦一区| 欧美激情在线一区二区| 免费久久精品视频| 日韩精品专区在线影院观看 | 国产v综合v亚洲欧| 久久久影视传媒| 日日欢夜夜爽一区| 欧美色区777第一页| 亚洲自拍偷拍网站| 不卡欧美aaaaa| 亚洲欧美在线观看| 国产精品亚洲视频| 国产精品美女久久久久久久 | 91精品国产综合久久精品| 亚洲不卡av一区二区三区| 成人午夜激情在线| 国产精品久久久久久亚洲毛片| 久久精品噜噜噜成人av农村| 日韩三级.com| 青青青伊人色综合久久| 精品国产亚洲在线| 麻豆国产精品官网| 成人免费毛片片v| 国产精品妹子av| av电影在线观看一区| 亚洲高清不卡在线观看| 色哟哟国产精品| 青青草一区二区三区| 日韩西西人体444www| 国产又黄又大久久| 久久色.com| 91麻豆swag| 亚洲影视在线观看| 日韩欧美国产一区二区在线播放| 石原莉奈在线亚洲三区| 日韩精品一区二区三区中文精品| 蜜桃精品视频在线| 久久久久久久久99精品| 午夜久久久久久久久| 99久久久无码国产精品| 精品国产成人在线影院| 国产精品亚洲专一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 国产美女一区二区| 中文字幕在线观看一区二区| 色网站国产精品| 中文字幕亚洲欧美在线不卡| 在线视频欧美精品| 日韩国产欧美视频| 欧美手机在线视频| 日韩国产高清影视| 国产精品久久久久久久久快鸭| 在线视频亚洲一区| 国产激情一区二区三区桃花岛亚洲| 国产精品视频在线看| 欧美日韩在线播放一区| 另类欧美日韩国产在线| 亚洲激情校园春色| 日韩丝袜美女视频| 国产精品久久久久7777按摩| 婷婷中文字幕综合| 亚洲区小说区图片区qvod| 成人h动漫精品一区二区| 成人欧美一区二区三区| 欧美精品久久久久久久多人混战| 成av人片一区二区| 秋霞国产午夜精品免费视频| 亚洲天堂成人在线观看| 91在线看国产| 蜜桃av噜噜一区| 国产精品美女久久福利网站| 在线免费精品视频| 丝袜美腿亚洲综合| 国产午夜亚洲精品羞羞网站| 免费不卡在线观看| 精品久久久网站| 91高清视频在线| 国产成人精品免费看| 日韩不卡手机在线v区| 五月婷婷激情综合网| 国产精品久久久久久久久快鸭| 中文字幕二三区不卡| 欧美疯狂性受xxxxx喷水图片| 欧美日韩国产成人在线91| 91麻豆免费视频| 色综合咪咪久久| 国产精品一区一区三区| 国产成人在线色| 狠狠久久亚洲欧美| 国产精品一区二区三区四区| 日本大胆欧美人术艺术动态| 天天爽夜夜爽夜夜爽精品视频| 一级精品视频在线观看宜春院 | 国产精品亲子乱子伦xxxx裸| 日韩午夜精品视频| 欧美色国产精品| 一卡二卡欧美日韩| 国产精品久久久久久久岛一牛影视 | 国产xxx精品视频大全| 亚洲日本成人在线观看| 国产三级欧美三级日产三级99| 日韩欧美亚洲国产另类| 欧美色综合久久| 在线欧美一区二区| 色婷婷久久久综合中文字幕| av亚洲产国偷v产偷v自拍| 成人一区二区三区视频在线观看 |