excel_vlookup函数_python代码实现
python入门经典视频系列教程(免费,2K超清,送书)
https://study.163.com/course/courseMain.htm?courseId=1006183019&share=2&shareId=400000000398149

# -*- coding: utf-8 -*-
"""
原创作者Toby,qq:231469242
Spyder Editor
excel字段覆盖
参数8个:
两个excel名字
两个sheet名字
4个字段名字
"""
import openpyxl
from openpyxl.cell import get_column_letter,column_index_from_string
#两个excel名字
excel_name1='test.xlsx'
excel_name2='database.xlsx'
#两个表格名字
sheet_name1="Sheet1"
sheet_name2="Sheet1"
wb1=openpyxl.load_workbook(excel_name1)
wb2=openpyxl.load_workbook(excel_name2)
#两个表格名字
sheet=wb1.get_sheet_by_name(sheet_name1)
database=wb2.get_sheet_by_name(sheet_name2) #四个字段参数
#sheet
columnname="C" #共同字段
columnvalue="E" #表格需要更新字段
#database
columnname1="B" #共同字段
columnvalue1="C" #数据库值字段
start=1 sheet_columnvalue_index=column_index_from_string(columnvalue)
sheet_columnvalue_list=sheet.columns[sheet_columnvalue_index-1] sheet_columname_index=column_index_from_string(columnname)
sheet_columnname_list=sheet.columns[sheet_columname_index-1] #根据索引字母,返回列的值,用列表存储
def Column_list(letter,thesheet):
value_list=[]
column_index=column_index_from_string(letter)
cell_list=thesheet.columns[column_index-1]
for cellObj in cell_list[start:]: #console显示不全前面内容,出现第一项不是第一个
#print(cellObj.value)
value_list.append(cellObj.value)
return value_list #数据库的名字和值列表
database_name_list=Column_list(columnname1,database)
database_value_list=Column_list(columnvalue1,database) #合并database名字和值,生成词典
combine_list=zip(database_name_list,database_value_list)
database_dict=dict(combine_list) #sheet的名字和值列表
sheet_name_list=Column_list(columnname,sheet)
sheet_value_list=Column_list(columnvalue,sheet) for i in range(1,len(sheet_columnvalue_list)):
cell=sheet_columnvalue_list[i]
cell1=sheet_columnname_list[i]
#print ("cell:",cell)
#print ("cell1:",cell1)
#如果sheet更新字段的cell值为None,且索引名字在数据库
if cell.value==None and cell1.value in database_name_list:
value=database_dict[cell1.value]
sheet_columnvalue_list[i].value=value #写入查询的值
wb1.save(excel_name1)
wb2.save(excel_name2)
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)

excel_vlookup函数_python代码实现的更多相关文章
- 编程算法 - 求1+2+...+n(函数指针) 代码(C++)
求1+2+...+n(函数指针) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\whi ...
- 在vs.net 2010,2015 等版本,给JS函数添加代码提示\注释
经常编写JS的朋友常常会因为函数写多了,隔一段时间就会忘记了函数的用途,或者函数里带的参数作用情况,这个时候会联想到VS工具里的强大提示功能,多希望也能在JS上实现呀,告诉你,这个想法并不是多难,VS ...
- python定义的一个简单的shell函数的代码
把写代码过程中经常用到的一些代码段做个记录,如下代码段是关于python定义的一个简单的shell函数的代码. pipe = subprocess.Popen(cmd, stdout=subproce ...
- iOS 使用宏定义函数和代码块
iOS使用宏定义函数和代码块 今天在开发过程中碰到一个问题:就是父类中要向外发送通知,然后子类中或者其他类中来接收它.当然一般是把它写到类方法中去,但是有个问题,就是如果调用的类不是它的子类,就不能直 ...
- 编程算法 - 求1+2+...+n(函数继承) 代码(C++)
求1+2+...+n(函数继承) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\whi ...
- go每个函数写代码例子
https://github.com/astaxie/gopkg 由于目前golang的手册里面针对函数的例子太少了,很多时候不知道怎么使用,好多人都是看源代码才明白怎么用,这个给我们快速开发gola ...
- python中实现延时回调普通函数示例代码
python中实现延时回调普通函数示例代码 这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...
- Python学习笔记(五)函数和代码复用
函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...
- Python基础篇(三)_函数及代码复用
Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...
随机推荐
- shell脚本编写mind
首先我们要缩小这个问题的范围 如果在面试中被问到这样的问题,说说shell脚本编写思路 如:你是在公司主要负责zabbix监控的 对答如下:shell脚本这个说法挺广的,您看我这么跟您说吧,我在平时工 ...
- Android笔记(六) Android中的组件
一个软件可以吸引到用户,除了优秀的功能可以解决用户的问题之外,良好的用户界面也并不可少.一个软件的功能不管多么优秀,但是没有提供友好的界面来让用户操作,将很难吸引到最终用户. Android提供了大量 ...
- HTML的BODY内标签介绍
一.基本标签 <body> <b>加粗</b> <i>斜体</i> <u>下划线</u> <s>删除线& ...
- 利用shell命令分析服务器日志
在没有专业日志分析系统的情况下,我们有时需要对日志进行简单的分析,下面列出一些常用的shell命令分析日志的方法,一定要收藏 1.查看有多少个ip访问 awk '{print $1}' log_f ...
- linux网络编程之system v信号量(一)
今天起,学习信号量相关的知识,下面开始: 关于信号量,在前面已经介绍过了,这里回顾一下: 通过上面的描述,很容易就能想到信号量的一上数据结构: 下面再来回顾一下P.V原语: 所谓的原语就是指这段代码是 ...
- 《hello--world团队》第五次作业:项目需求分析改进与系统设计
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验九 团队作业5-团队项目需求改进与系统设计 团队名称 <hello--worl ...
- Android上执行python脚本-QPython
看书,发现android可以跑python. 尝试了一下. 首先需要在手机上安装python环境,通过安装apk实现,这个apk叫QPython,还有同类的比如SL4A. QPython的官网:htt ...
- [NOI2005]月下柠檬树
题意 F.A.Qs Home Discuss ProblemSet Status Ranklist Contest 入门OJ ModifyUser autoint Logout 捐赠本站 Probl ...
- 利用python中的库文件简单的展示mnist 中的数据图像
import sys, os sys.path.append('F:\ml\DL\source-code') #导入此路径中 from dataset.mnist import load_mnist ...
- 多任务4---greenlet完成多任务
同yield一样 ,单线程,来回切换完成多任务,需要安装greenlet插件 pip install greenlet 代码: from greenlet import greenlet import ...