参考自CSDN
导入模块
import pandas as pd
import xlwings as xw
创建sheet
#创建excel文档wb = xw.Book() # 创建一个Excel进程App, 并在App中新建一个Book,Book下自动创建一个Sheetwb.save(文件)##excel表显示设定app=xw.App(visible=False,add_book=False)app.display_alerts=Falseapp.screen_updating=False# 获取当前活动的工作表,并新建工作表sht1 = wb.sheets.active sht1.name = "某表"
pandas读取excel表
df = pd.read_excel(考勤.xlsx,sheet_name="某表")
几种模拟vlookup的情形
定量:
sht1.range("G3").value=df[['夜班补助']].loc[df['姓名']=="某某"].iat[0,0]
定量向变量过渡:
sht1.range("G3").value=df[['夜班补助']].loc[df['姓名']==sht1.range("B3").value].iat[0,0]
一个变量:
for i in range (3,5):sht1.range("G"+str(i)).value = df[['夜班补助']].loc[df['姓名']==sht1.range("B"+str(i)).value].iat[0,0]
两个或以上的变量
for i in range (3,5):sht1.range('S'+str(i)).value = df_c[['合计']].loc[(df_c['类型']=='累计应发工资') & (df_c['姓名']==sht1.range('B'+str(i)).value)].iat[0,0]
两个以上的变量需要留意:
#loc必须用()包好每一个筛选条件,否则会出现『TypeError: Cannot perform ‘rand_’ with a dtyped [object] array and scalar of type [bool]』报错
可参考这Stackoverflow