python逐行读取excel_python对execl 处理操作代码

1. 读取execl

1.前提需要安装xlrd模块,这个在网上可以找安装教程,这里就不写了

2. 打开表格

3. 读取表格的sheet

4. 按行读取数据或者列读取数据或者单元格读取数据

实际操作:

import xlrd

import xlwt

from xlutils.copy import copy

def info_row_col_execl(file_name):

myworkbook = xlrd.open_workbook(file_name)

mySheetlist = myworkbook.sheets()

mysheet = mySheetlist[0]

nrows = mysheet.nrows

ncols = mysheet.ncols

return nrows,ncols

def read_execl(filename):

myworkbook = xlrd.open_workbook(filename)

mySheetlist = myworkbook.sheets()

mysheet = mySheetlist[0]

return mysheet

def com_exel(file_name_dai,file_name_all):

dai_rows, dai_cols = info_row_col_execl(file_name_dai)

all_rows,all_cols = info_row_col_execl(file_name_all)

print(dai_rows, dai_cols)

print(all_rows,all_cols)

def read_execl_values(file_name):

list_execl_values = []

mysheet = read_execl(file_name)

execl_rows, execl_cols = info_row_col_execl(file_name)

myRowValues_name= mysheet.row_values(0)

for nrow in range(1,execl_rows):

myRowValues= mysheet.row_values(nrow)

#print(myRowValues)

myRow_name_value=dict(zip(myRowValues_name,myRowValues))

list_execl_values.append(myRow_name_value)

return list_execl_values

def com_execl_values(file_name_dai,file_name_all,key_list):

dai_list_execl_values = read_execl_values(file_name_dai)

all_list_execl_values = read_execl_values(file_name_all)

row_num = 1

for i in dai_list_execl_values:

dai_list_execl_value = i

dai_len_row = len(dai_list_execl_value)

for k in all_list_execl_values:

all_list_execl_value = k

result = compare_two_dict(dai_list_execl_value,all_list_execl_value,key_list)

if result == "Pass":

#print(dai_list_execl_value,all_list_execl_value,result)

print(dai_list_execl_value['ID'],dai_list_execl_value['名字'],)

print(all_list_execl_value['班级'],all_list_execl_value['教师'])

write_execl(file_name_dai,all_list_execl_value['班级'],all_list_execl_value['教师'],row_num,dai_len_row)

break;

row_num = row_num + 1

def write_execl(file_name_dai,all_list_execl_value_1,all_list_execl_value_2,row_num,dai_len_row):

open_execl = xlrd.open_workbook(file_name_dai)

open_execl_copy = copy(open_execl)

open_execl_copy_sheet = open_execl_copy.get_sheet(0)

open_execl_copy_sheet.write(row_num,dai_len_row-3,all_list_execl_value_1)

open_execl_copy_sheet.write(row_num,dai_len_row-2,all_list_execl_value_2)

open_execl_copy.save(file_name_dai)

def compare_two_dict(dai_dict,all_dict,key_list):

flag = True

dai_dict_key = dai_dict.keys()

all_dict_key = all_dict.keys()

if len(key_list) != 0:

for key in key_list:

if key in dai_dict_key and key in all_dict_key:

if dai_dict[key] == all_dict[key]:

#print(dai_dict[key],all_dict[key])

flag = flag & True

else:

flag = flag & False

else:

raise Exception('key_list contains error key')

else:

raise Exception('key_list is null')

if flag:

result = "Pass"

else:

result = "Failed"

#print(result)

return result

if __name__ == '__main__':

file_name_dai = 'name_1.xlsx'

file_name_all = 'name.xlsx'

key_list = ['ID', '名字']

com_execl_values(file_name_dai,file_name_all,key_list)

总结

到此这篇关于python对execl 处理操作代码的文章就介绍到这了,更多相关python对execl 处理内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之Android studio基本调试和快捷键

第一种调试方法: 如果APP是单进程,直接debug运行,如下图 第二种调试方法: 第二种就是调试当前已经处于运行状态下的App,这也是我们用的更多的一种调试手段,即 Attach debugger to Android process 。点击运行按钮右侧第三个按钮,弹出 Choose Process 窗口,选择对应的进…

Windows 2008 R2安装DHCP服务器问题及解决方法

错误一:0x80074E6F 指定的服务器已在目录服务中造成此错误的原因是DHCP服务器没有正常卸载,第二次安装就会报如下图错误解决方法1.卸载DHCP服务器2.重启服务器3.打开adsiedit.msc4.如下图展开到 CNNetServices5.删除CNYour ServerName6.重新安装DHCP服务…

免费动态域名解析

DDNS 顾名思义就是动态域名解析,让域名绑定在动态 IP 上,比如拨号上网的 ADSL 用户。国内的 DDNS 服务有花生壳和 3322.org 这种提供商,我一直在用花生壳的免费 DDNS,可是近期情况非常糟糕,我到北京以来,就…

2021 年 CNCF 和开源速度的年终报告

深入了解开发速度最快的项目,可以很好地表明哪些领域正在起飞,哪些平台可能在未来几个月和几年内取得成功。如何评估一个项目的活跃度,通常从这几个方面, commits, contributions, issues 和 pull requests,而使用气泡图是一种很巧…

清华姚班毕业生不配自信?张昆玮在豆瓣征女友,却被网友群嘲......

全世界只有3.14 % 的人关注了爆炸吧知识不要看脸好好说话没想到,清华也有被瞧不起的一天。上周,山西某网友在D瓣上发布了一则征友贴:总结下来,就是一句话:俺,一介俗人,二本教师,兼职…

转: javascript技术栈

http://www.infoq.com/cn/articles/state-of-javascript-2016

python自带的函数有哪些_为什么说 Python 内置函数并不是万能的?

在Python猫的上一篇文章中,我们对比了两种创建列表的方法,即字面量用法 [] 与内置类型用法 list(),进而分析出它们在运行速度上的差异。在分析为什么 list() 会更慢的时候,文中说到它需要经过名称查找与函数调用两个步骤&#xff…

抽象类与接口比较

为什么80%的码农都做不了架构师?>>> 老生重谈,每次谈却有不同的收获。抽象类与接口联系 1、是什么 抽象类: public abstract class Door{public int height 250;public int width 150;void open(){System.out.print(&qu…

数据库优化分层思想

可以分别从SQL语句层面、SQL配置层面、SQL架构层面和业务层面来优化。 SQL 语句层面 1. 调优策略 *号的处理(只是提取必要字段,减少流量)大SQL(拆分、逐步缩小结果集)合理的索引(where字句后面的条件&#…

Prism源代码解析(IRegionManager)

概要本文主要介绍Prism的IRegionManager, 主要分析源代码的执行流程, 来介绍内部实现的几个核心接口调用过程。通过本文, 你可以熟练的掌握Prism当中以下接口的作用以及使用方法, 如下所示:IRgionManagerINavigationAwareINavigateAsyncIRegionNavigationServiceIConfirmNaviga…

微博与Redis系统技术文章记录

Redis 持久化,有两种: rdb 和 aof, rdb是记录一段时间内的操作,一盘的配置是一段时间内操作超过多少次就持久化。 aof可以实现每次操作都持久化。 这里我们使用aof。 配置方式,打开redis的配置文件。找到appendonly。…

求字符串里面数字之和

无意看到别人面试问了很简单的问题,求字符串里面数字之和,所以自己来实现下。 例子: 比如字符串:aaaa13sseui9ddu78ff4sss 里面的字符串数字是13、9、78、4 得到的和为104 代码如下: package com.sangfor.tree;public class SumByString {public static int sumByStri…

android用于打开各种文件的intent

import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File; import android.content.Intent; //自定义android Intent类, //可用于获取打开以下文件的intent //PDF,PPT,WORD,EXC…

Android后台强制结束进程,Application入口或者activity回调的是哪个方法?

问题描述dengdeng 解决方案1如果是系统强制结束,不会调用的 转载于:https://www.cnblogs.com/yiguobei99/p/4002126.html

python mysql数据库_Python3中操作MySQL数据库

0.安装 pip install pymysql 1.打开数据库连接 import pymysql db pymysql.connect(host"数据库地址", user"用户名", password"密码", port"端口", database"数据库名", charsetutf8) 2.创建游标 cursor db.cursor() 3.操…

日本的电视节目到底能有多特别?

1 是不是设计师忘了开扇窗?(素材来源网络,侵删)▼2 路灯:???(素材来源网络,侵删)▼3 当代大学生的真实水平(素材来源网络&#xff0…

记一次 Oracle无法连接 问题分析

前言今天,同事告诉我,有台Oracle服务器异常断电,重启后发现无法连接了。分析过程1.检查服务状态查看Oracle的listerner服务和service服务,发现都是正在运行状态,说明服务是正常的。2.检查端口状态在客户机上使用&#…

最详细的最小堆构建、插入、删除的过程图解

转载:http://blog.csdn.net/hrn1216/article/details/51465270 1.简介 最小堆是一棵完全二叉树,非叶子结点的值不大于左孩子和右孩子的值。本文以图解的方式,说明 最小堆的构建、插入、删除的过程。搞懂最小堆的相应知识后,最大堆…

为什么要清除浮动

父元素的高度是由子元素撑开的,且子元素设置了浮动,父元素没有设置浮动,子元素脱离了标准的文档流,那么父元素的高度会将其忽略,如果不清除浮动,父元素会出现高度不够,那样如果设置border或者ba…