需求描述:自动补充相关信息到一张excel表中
代码:
# -*- conding:utf-8 -*-
import xlrd
import xlutils
from xlutils.copy import copy
def get_person_data():
'''先从一张表中获取所有人员相关信息'''
global person_list
#设置文件名和路径
fname = 'C:/Users/admin/test.xlsx'
#打开文件
filename = xlrd.open_workbook(fname)
sheet = filename.sheets()[0] #通过sheet索引获得sheet对象
nrows = sheet.nrows #获取行数
ncols = sheet.ncols #获取列数
#按每一行来获取各行数据
person_list = []
for i in range(0,nrows):
row_datas = sheet.row_values(i)
person_list.append(row_datas)
print(person_list)
def comple_excel():
'''将上面获得信息自动填入需要的新excel中'''
excel = 'D:/Test.xlsx'
wb = xlrd.open_workbook(excel)
sheet = wb.sheets()[0]
newb = copy(wb)
wbsheet = newb.get_sheet(0)
for temp_ncol in sheet.col_values(0):#从复制列表的第一列取出每一行的姓名
for temp_person in person_list: #从人员信息列表中取出每一个人员列表
if temp_ncol in temp_person:
print(temp_person[0],temp_person[1],temp_person[2])
wbsheet.write(sheet.col_values(0).index(temp_ncol),2,temp_person[1])
wbsheet.write(sheet.col_values(0).index(temp_ncol),3,temp_person[2])
else:
pass
newb.save(r"F:/newexcel.xls")
def main():
get_person_data()
comple_excel()
if __name__ == '__main__':
main()