Python批量處理Excel表格,將多個表格內容合並到一個,提升工作效率!


老板最近越來越過分了,快下班了發給我幾百個表格讓我把內容合並到一個表格內去。

還好我會Python,分分鍾就搞定了,這要是換個不會Python的,不得加班到第二天天亮去了~


這么好用的技能,必須分享給大家,話不多說,咱們直接開始!

准備工作

咱們需要先准備表格數據,會爬蟲的兄弟可以自己爬一點,不會的,可以找我直接拿數據。

表格內數據


 

 

我這里只做展示,所以只用了五個表,咱們今天是將市級合並為省級。

在這里插入圖片描述

本文思路

  1. 將當前文件夾下所有的 excel 匯總到 廣東省.xlsx
  2. 添加一個新的字段 城市,字段內容為商鋪所在城市,這個字段放在最前面;
  3. 星級為 star_0 的數據全部不要
  4. 只要一條數據中有三個字段為空字段,整條數據都不需要;
  5. 將價格中的 ¥ 符號去掉

代碼實現

全部代碼都分享給大家,咱不喜歡藏着掖着。

import glob
import openpyxl 
# Python學習交流群 815624229

workbook = openpyxl.Workbook()
sheet_total = workbook.active
sheet_total.append(['城市', '門店名稱', '星級', '星級得分', '點評總數', '人均消費', '口味', '環境', '服務', '鏈接網址', '分類', '商圈', '詳細地址', '推薦菜'])


def count_none(line):
    """返回空內容的數據"""
    count = 0
    for d in line:
        if not d:
            count += 1
    return count


filenames = glob.glob('*/*.xlsx')
for filename in filenames:
    # print(filename)
    city = filename.split('.')[0].split('\\')[-1]
    workbook_temp = openpyxl.load_workbook(filename)
    sheet = workbook_temp.active
    for row in sheet.iter_rows(min_row=2, min_col=1, max_col=sheet.max_column, max_row=sheet.max_row):
        row_data = [col.value for col in row]
        if row_data[1] == 'star_0':
            continue

        # 定義一個方法判斷空字段的數量
        if count_none(row_data) >= 3:
            continue

        # 去掉平均價格中的 ¥
        if row_data[4]:
            row_data[4] = row_data[4].strip('')
        row_data.insert(0, city)
        # print(row_data)
        sheet_total.append(row_data)
    # break  # 調試只處理一個

workbook.save('廣東省.xlsx')

 

 

效果

還是剛出爐的,非常新鮮。
在這里插入圖片描述這我做了篩選,不然全是顯示一個地方了。
可以看到,數據成功的合並到一個表格去了。

 

 


喜歡的小伙伴記得點贊收藏呀~
關注我分享更多技術干貨
直接拿走代碼等於白嫖,點贊收藏才是真情…
你們的支持是我更新的動力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM