首頁 > 軟體

如何利用Python讓Excel快速按條件篩選資料

2022-12-27 14:01:16

本文即使用python實現excel快速篩選資料

有一張 12 個月份的產品銷售情況表。

安裝所需的 Python 第三方庫

xlwings 的特色:

  • xlwings 能夠非常方便地讀寫 Excel 檔案中的資料,並且能夠進行單元格格式的修改
  • 可以和 Matplotlib 以及 Pandas 無縫連線
  • 可以呼叫 Excel 檔案中 VBA 寫好的程式,也可以讓 VBA 呼叫用 Python 寫的程式
  • 開源免費,一直在更新

匯入 xlwings:

import xlwings as xw

通過 Python 啟動 Excel 檔案

1.開啟 Excel 程式

app =xw.App(visible=True,add_book=False)

其中引數 visible(表示處理過程是否可視,也就是處理 Excel 的過程會不會顯示出來),add_book(是否開啟新的 Excel 程式,也就是是不是開啟一個新的 excel 視窗)。

2.開啟 Excel 檔案

workbook = app.books.open("2020 XX 公司銷售表彙總表.xlsx")

3.獲取所有的表格

sheets_list = workbook.sheets

4.設定篩選條件

select_value = '江西省'
select_value1 = '博士'

5.新增 Sheet 存在篩選資料

qxs_excel = workbook.sheets.add(select_value)

自定義 Python 遍歷 Excel 的函數

1.新建資料列表,將資料新增到列表中

range_value_list = []

2,。自定義單一 Sheet 資料讀取類

    def readrange(excel):
        for i in range(2,1000): #我的資料每張 Sheet 表最多隻有 1000 行,所以設定的是 1000

            #單個表格字串
            select_sheet_value = "E"+str(i)
            select_sheet_value1 = "C"+str(i)
            #整行表格字串
            str_sheet1 = "A"+str(i)+":"+"E"+str(i)

            select_value_sheet = excel.range(select_sheet_value).value
            select_value_sheet1 = excel.range(select_sheet_value1).value
            if select_value_sheet == select_value and select_value_sheet1 == select_value1:#這裡設定搜尋條件判斷,這裡是表示兩個篩選條件同時滿足才會存入資料列表
                str_value_row = excel.range(str_sheet1).value
                range_value_list.append(str_value_row)

    for excel in sheets_list:
        readrange(excel)

將資料寫入新的彙總表裡

1.首先寫入標題資料

  qxs_excel.range("A1:F1").value = ["姓名","級別","學歷","薪資","地址"]

2.迴圈寫入資料列表資料到彙總表中

    flag = 1   #因為計算機從 0 開始,0 行已經寫入標題,所以這裡是 1;如果有多行標題,根據實際情況設定
    for i in range_value_list:
        flag += 1
        #整行表格字串
        str_sheet1 = "A"+str(flag)+":"+"E"+str(flag)
        qxs_excel.range(str_sheet1).value = i

執行之後的效果如下:

總結 

到此這篇關於如何利用Python讓Excel快速按條件篩選資料的文章就介紹到這了,更多相關Python Excel快速按條件篩選資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com