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实例之wxpython中Frame使用方法
Jun 09 Python
python中二维阵列的变换实例
Oct 09 Python
python抓取百度首页的方法
May 19 Python
python爬取淘宝商品详情页数据
Feb 23 Python
python使用turtle绘制分形树
Jun 22 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
Python创建字典的八种方式
Feb 27 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
pytorch读取图像数据转成opencv格式实例
Jun 02 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
python多线程方法详解
Jan 18 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
PHP在Web开发领域的优势
2006/10/09 PHP
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php pdo操作数据库示例
2017/03/10 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
微信小程序实现美团菜单
2018/06/06 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
linux系统都有哪些运行级别
2016/03/26 面试题
建国大业观后感800字
2015/06/01 职场文书