亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現對excel中需要的數據的單元格填充顏色

發布時間:2022-06-20 09:14:53 來源:億速云 閱讀:668 作者:iii 欄目:開發技術

本篇內容介紹了“python怎么實現對excel中需要的數據的單元格填充顏色”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

前言:

一般處理數據使用的是pandas和numpy庫,但是填充單元格顏色需要在excel中,使用的是openpyxl庫,所以不能直接達到我們的需求,需要進行兩個庫的鏈接使用,先說下openpyxl填充色,pandas是直接讀取數據,但是openpyxl則不是,必須要sheet處于active狀態,而且必須進行sheet選擇才可以讀取數據

import openpyxl
from openpyxl import load_workbook

# 比如打開test.xlsx
wb = load_work(filename='test.xlsx')
# 使用第一個sheet作為工作簿
work = wb[wb.sheetnames[0]]

openpyxl填充色說明
調用openpyxl中PatternFill
純色填充使用solid

import openpyxl
from openpyxl.styles import PatternFill

#根據上面的work進行單元格選擇
# 設置樣式(填充色)
# 顏色必須使用hex 十六進制并且沒有'#'符號 列舉為黃色
fill = PatternFill('solid',fgColor='FFFF00')
# 填充D4為為黃色
d4 = work['D4']
d4.fill = fill

面臨一個問題,我們需要創建Excel的列,比如’A’,‘B’,'C’等等

python怎么實現對excel中需要的數據的單元格填充顏色

使用python產生26個英文字母.并進行組合

import math
import string

def cycle_letter(arr,level):
    import string
    list1 = string.ascii_uppercase
    tempArr = []
    letterArr = [i for i in list1]
    arrNum = len(arr)
    if(level==0 or arrNum==0):
        return letterArr
    for index in range(arrNum):
        for letter in letterArr:
            tempArr.append(arr[index]+letter)
    return tempArr
def reduce_excel_col_name(num):
    tempVal = 1
    level = 1
    while(tempVal):
        tempVal = num/(math.pow(26, level))
        if(tempVal>1):
            level += 1
        else:
            break
    excelArr = []
    tempArr = []
    for index in range(level):
        tempArr = cycle_letter(tempArr,index)
        for numIndex in range(len(tempArr)): 
            if(len(excelArr)<num):
                excelArr.append(tempArr[numIndex])
            else:
                return excelArr
    return excelArr

可以填充數字,產生所需要的excel列
例:產生31個

python怎么實現對excel中需要的數據的單元格填充顏色

案例:

這個是我們的數據:

python怎么實現對excel中需要的數據的單元格填充顏色

現在需要把所有大于50(不包含50)的數字,進行黃色標注

# 導入所需的庫
import math
import string
import openpyxl
import pandas as pd
from openpyxl import load_workbook

# 如上圖,一共10列,從0到9
# 產生為10的excel對應的列
def cycle_letter(arr,level):
    list1 = string.ascii_uppercase
    tempArr = []
    letterArr = [i for i in list1]
    arrNum = len(arr)
    if(level==0 or arrNum==0):
        return letterArr
    for index in range(arrNum):
        for letter in letterArr:
            tempArr.append(arr[index]+letter)
    return tempArr
 
def reduce_excel_col_name(num):
    tempVal = 1
    level = 1
    while(tempVal):
        tempVal = num/(math.pow(26, level))
        if(tempVal>1):
            level += 1
        else:
            break
    excelArr = []
    tempArr = []
    for index in range(level):
        tempArr = cycle_letter(tempArr,index)
        for numIndex in range(len(tempArr)): 
            if(len(excelArr)<num):
                excelArr.append(tempArr[numIndex])
            else:
                return excelArr
    return excelArr
# 保存到charter_list
charter_list = reduce_excel_col_name(10)

# 循環data選出所有>50的數字
# 并取出index和col_index并保存到excel中
a = []
b = []
for i in range(len(data.values)):
    for y in data.values[i]:
        if y > 50:
            # 獲取行數
            a.append(i)
            # 獲取列數
            a.append(data.values[i].tolist().index(y))
            b.append(a)
            a = []
# 列表中第一個代表的是行,第二個數字代表的是列
# 將第二個數使用charter_list產生的代替
# 因為列表的第二個數對應的也是charter_list的index
for i in b:
    i[1] = charter_list[i[1]]
    
# 這里需要注意的是excel都是從1開始,所以我們的第一個數
# 行數需要+1,但是因為有列名0,1,2,3到9的存在,所以需要添加一個2
for i in b:
    i[0] = i[0]+2

# 將列表變為'A2','C2',符合excle的習慣
list_color_all = [x[1]+str(x[0]) for x in b]

# 使用load_workbook加載excel數據,進行顏色填充
wb = load_workbook(filename='excel_col.xlsx')
work = wb[wb.sheetnames[0]]
fill = PatternFill("solid", fgColor='FFFF00')

for i in list_color_all:
    work[i].fill = fill
wb.close()
wb.save('excel_col.xlsx')

運行截圖:

python怎么實現對excel中需要的數據的單元格填充顏色

python怎么實現對excel中需要的數據的單元格填充顏色

python怎么實現對excel中需要的數據的單元格填充顏色

python怎么實現對excel中需要的數據的單元格填充顏色

python怎么實現對excel中需要的數據的單元格填充顏色

“python怎么實現對excel中需要的數據的單元格填充顏色”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元江| 长岛县| 广昌县| 仙游县| 宁远县| 西昌市| 波密县| 东莞市| 肥西县| 沙河市| 同德县| 孝感市| 临颍县| 中超| 广安市| 项城市| 贵德县| 清水河县| 泸定县| 乐都县| 休宁县| 赤水市| 和林格尔县| 商城县| 垦利县| 天峨县| 白银市| 五常市| 商河县| 雷波县| 托克逊县| 浪卡子县| 屯门区| 柳州市| 浦县| 阿城市| 永寿县| 山阳县| 衡东县| 建瓯市| 西宁市|