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 ...
随机推荐
- 打造完美Python环境(pyenv, virtualenv, pip)
写在最前 在使用 Python 进行开发和部署的时候,经常会碰到Python版本或者依赖包或者对应版本不同导致各种意外情况发生. 本文将介绍如何通过 pyenv, virtualenv, pip三个工 ...
- 有关Error during sbt execution: No Scala version specified or detected的解决方案--SBT
sbt 全称为 Simple Build Tool,是 Scala 项目中的标准构建工具,类似于 Java 下的 Maven/Groovy 中的 Gradle. 项目的构建 项目依赖自动化管理 提供统 ...
- 18计科学期总成绩明细 && 小黄衫团队预选
1.个人所有作业+团队作业总得分排名 2.千帆竞发图 3.各团队每次作业得分汇总 根据团队成绩排名,众志陈成队得分最高,预选为小黄衫团队. 对团队成绩有异议的团队,请在成绩预选发布后的两天内私信助教解 ...
- 利用Python读取和修改Excel文件(包括xls文件和xlsx文件)——基于xlrd、xlwt和openpyxl模块
https://blog.csdn.net/sinat_28576553/article/details/81275650#4.4%C2%A0%E4%BF%9D%E5%AD%98%E5%B7%A5%E ...
- 金蝶二次开发C#
1 建立C#类库项目 2 引用EBOS组建Kingdee.K3.BOS.PlugInModel 3 示例代码 usingSystem; usingSystem.Collections.Generic; ...
- python - django (母版与组件)
# 把多个页面通用的部分提取出来 放在一个母版中 # 其它的页面只需要继承 母版就可以 # 使用步骤:( 继承的语句要放在第一行 ) """ 1. 把公用的 HTML 部 ...
- 物联网之窄带物联网(NB-IOT)
NB-IoT即窄带物联网(Narrow Band Internet of Things),NB-IOT构建在蜂窝网络之上,只消耗大约180KHZ的带宽,可直接部署于GSM(2G).UMTS(3G).L ...
- MySQL 事务 MVCC 版本链
版本链 对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列(row_id并不是必要的,我们创建的表中有主键或者非NULL唯一键时都不会包含row_id列): 1) ...
- [access]第一篇-平台
[access]第一篇-平台 上海盟威软件有限公司http://www.accessoft.com/ 下载地址http://www.accessgood.com/ 中山市天鸣科技发展有限公司http: ...
- 怎么写一个带 bin 的 npm 包
只需要2步: 1. 在package.json 定义 一下 : { "name": "my-cli", ..., "bin": { &quo ...