python对execl 处理操作代码


Posted in Python onJune 22, 2020

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 调用VC++的动态链接库(DLL)
Sep 06 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
Python BS4库的安装与使用详解
Aug 08 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
详解Python匿名函数(lambda函数)
Apr 19 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
Django 表单模型选择框如何使用分组
May 16 Python
Opencv实现抠图背景图替换功能
May 21 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
Python timeit模块的使用实践
Jan 13 Python
python两个list[]相加的实现方法
Sep 23 Python
Python select及selectors模块概念用法详解
Jun 22 #Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 #Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 #Python
Python Excel vlookup函数实现过程解析
Jun 22 #Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 #Python
python和php哪个更适合写爬虫
Jun 22 #Python
如何理解python对象
Jun 21 #Python
You might like
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
jquery foreach使用示例
2013/09/12 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
Python2与Python3的区别实例总结
2019/04/17 Python
python pandas模块基础学习详解
2019/07/03 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
2020/04/10 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
经典安踏广告词
2014/03/21 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
ICOM R71E和R72E图文对比解说
2022/04/07 无线电