繁体   English   中英

在python中使用条件格式突出显示Excel单元格

[英]Highlighting an excel cell using conditional formatting in python

我正在尝试创建一个程序,该程序读取包含一些数据的excel文件,要求用户提供输入,并且如果输入的输入等于单元格中的数据,则该单元格将突出显示。 在将用户的输入与数据进行比较之前,该代码当前可以正常工作。

但是,如果与输入的内容匹配,我将找不到正确的方式来突出显示单元格。 我该怎么办? 我尝试使用xlsxwriter进行条件格式设置,但在浏览文档时意识到它只能用于创建新文件,而不能更改或修改现有文件,并尝试在此处使用openpyxl却无济于事。 抱歉,我对此并不陌生,非常感谢您提供一些修复此代码的帮助

import pandas as pd
import xlsxwriter
from openpyxl import Workbook
from openpyxl.styles import Color, PatternFill, Font, Border
from openpyxl.styles.differential import DifferentialStyle
from openpyxl.formatting.rule import ColorScaleRule, CellIsRule,
FormulaRule

    def checkIfValuesExists1(dfObj, listOfValues):
    ''' Check if given elements exists in dictionary or not'''
    resultDict = {}
    # Iterate over the list of elements one by one
    for elem in listOfValues:
        # Check if the element exists in dataframe values
        if elem in dfObj.values:
            resultDict[elem] = True
        else:
            resultDict[elem] = False
    # Returns a dictionary of values & their existence flag        
    return resultDict

def main():
    import pandas as pd 
    df=pd.read_excel("filename.xlsx") 
    df

    # Create a DataFrame object
    empDfObj = pd.DataFrame(df, columns=['Name', 'LastName', 
    'MiddleName'])

    print('Contents of the dataframe :')
    print(empDfObj)

    print('**** Check if an element exists in DataFrame using in & not in 
   operators ****')

    x= str(input("Enter your text: "))

    print('** Use in operator to check if an element exists in dataframe 
**')

    if x in empDfObj.values:

    df.style.apply(lambda y:['background:red' if x == df.Category else 
    'background:green' for x in df],axis=0)

        print('Element exists in Dataframe')
    else:
        print('Element does not exist in Dataframe')

    # Check if 'Hello' doesn't exist in DataFrame
   # if 'Hello' not in empDfObj.values:
         #print('Element does not exist in Dataframe')

    # Get the xlsxwriter workbook and worksheet objects.
    df.to_excel('output1.xlsx', engine='xlsxwriter')

if __name__ == '__main__':
    main()

要获取单元格的值,您只需要使用.cell并选择行和列即可, .cell回答的那样- 从python中的excelsheet读取特定的单元格值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM