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 ...
随机推荐
- vue-quill-editor + iview 实现富文本编辑器及图片上传
1.npm 安装 vue-quill-editor npm install vue-quill-editor 2.再main.js中引入 import VueQuillEditor from 'vue ...
- Mysql安装与问题合集
下载mysql https://dev.mysql.com/downloads/mysql/ 下载历史版本 看这篇文章 https://www.cnblogs.com/reyinever/p/8551 ...
- ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare (组合数学,递归)
A. Hard to prepare After Incident, a feast is usually held in Hakurei Shrine. This time Reimu asked ...
- VSCode之使用Settings Sync同步配置和插件
需求背景 自己平常工作,一般在公司用公司的电脑,在家里就是自己的,但是vscode如果配置了新的内容,或者安装了新的插件,那每次都需要单独记录一下然后再重新配置一遍.使用Settings Sync插件 ...
- POI进行导出时候发现有不可读取的内容
通过后台查询数据,然后使用poi进行导出时候,excel进行打开会出现下面的异常: 但是在WPS中就没有问题, 如果点击否,则不会显示任何内容,点击是,就会弹出来 查看修改记录为: 刚开始也进行了很多 ...
- 数据库中聚合索引(MySQL和SQL Server区别)
一.聚集索引和非聚集索引 聚集索引:类似字典的拼音目录.表中的数据按照聚集索引的规则来存储的.就像新华字典.整本字典是按照A-Z的顺序来排列.这也是一个表只能有一个聚集索引的原因.因为这个特点,具体索 ...
- 大数据之路week06--day07(Hadoop生态圈的介绍)
Hadoop 基本概念 一.Hadoop出现的前提环境 随着数据量的增大带来了以下的问题 (1)如何存储大量的数据? (2)怎么处理这些数据? (3)怎样的高效的分析这些数据? (4)在数据增长的情况 ...
- numpy模块的基本使用
numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速.节省空间.numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提 ...
- c语言数组越界的避免方法
1.尽量显式地指定数组的边界 #define MAX 10 - int a[MAX]={1,2,3,4,5,6,7,8,9,10}; 在 C99 标准中,还允许我们使用单个指示符为数组的两段" ...
- 如何在C中以二进制格式打印十进制数?
回答: #define CHAR_BITS 8 // size of character #define INT_BITS ( sizeof(int) * CHAR_BITS) //bits i ...