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求列表交集的方法汇总
Nov 10 Python
Python fileinput模块使用介绍
Nov 30 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
python文件写入实例分析
Apr 08 Python
Python实现单词拼写检查
Apr 25 Python
python WindowsError的错误代码详解
Jul 23 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
php中memcache 基本操作实例
2015/05/17 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
vue中的watch监听数据变化及watch中各属性的详解
2018/09/11 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python多线程编程简单介绍
2015/04/13 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
python增加图像对比度的方法
2019/07/12 Python
pip指定python位置安装软件包的方法
2019/07/12 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
2013届毕业生求职信范文
2013/11/20 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
岗位职责的构建方法
2014/02/01 职场文书
道路建设实施方案
2014/03/18 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
Pytorch反向传播中的细节-计算梯度时的默认累加操作
2021/06/05 Python