如何在Python中实现类似vlookup excel的功能

2024-10-05 11:12:38 发布

您现在位置:Python中文网/ 问答频道 /正文

在Billing-Floster-SOW.xlsx中,我有一个新的列数据,一个名为SOW,另一个名为SOW Description(SOW的匹配值)。 现在,当我打开ACFC_Resource_Allocation.xlsx excel时,例如,如果从下拉列表中选择D2(SOW)单元格中的一个值,我应该在从下拉列表中选择后,在E2单元格中获得一个匹配值

我只有一个想法,那就是像下面这样一个Excel的vlookup可以解决我的问题。不知道如何在python中实现。 =VLOOKUP(D2,“[Billing-lotus-SOW.xlsx]SOW List'!$A$1:$B$14,1,FALSE)

在代码下面尝试

from openpyxl import *
from openpyxl.styles import *
import webbrowser
import pandas
from openpyxl.worksheet.datavalidation import DataValidation


# Read all Excels into pandas dataframes
sowexcel = pandas.read_excel('Billing Roster - SOW.xlsx')

#Load the existing Resource Allocation Excel
wb = load_workbook('ACFC_Resource_Allocation.xlsx')
allocationsheet = wb.active

def load():
   
    maxrow = allocationsheet.max_row
   
    sow_list = sowexcel['SOW #'].tolist()
    column_sow = ','.join(sow_list)
    validator_sow = DataValidation(type='list', formula1='"{}"'.format(column_sow), allow_blank=True)
    allocationsheet.add_data_validation(validator_sow)
    validator_sow.add('D2:D%s' %maxrow)
   
   
    # save the file
    wb.save('ACFC_Resource_Allocation.xlsx')
    wb.close()


# Driver code
if __name__ == "__main__":
   
    load()
    file_open = webbrowser.open('ACFC_Resource_Allocation.xlsx')

Tags: fromimportpandasloadxlsxresourced2wb

热门问题