Python实现读取并写入Excel文件过程解析


Posted in Python onMay 27, 2020

需求是有两个Excel文件:1.xlsx,2.xlsx,比较2.xlsx中的A,B列和1.xlsx中的A,B列;查找1.xlsx中存在,2.xlsx中不存在的行数据,输出到result.xlsx文件中

1.xlsx内容如下

Python实现读取并写入Excel文件过程解析

2.xlsx内容如下

Python实现读取并写入Excel文件过程解析

上代码

# coding=utf-8

import xlrd
import xlwt

# 打开文件
#data = xlrd.open_workbook('./附件7:溶洞钻孔、埋管、注浆.xlsx')

# 查看工作表
#data.sheet_names()
#print("sheets:" + str(data.sheet_names()))

# 通过文件名获得工作表,获取工作表1
#table = data.sheet_by_name('20200404')

# 打印data.sheet_names()可发现,返回的值为一个列表,通过对列表索引操作获得工作表1
# table = data.sheet_by_index(0)

# 获取行数和列数
# 行数:table.nrows
# 列数:table.ncols
#print("总行数:" + str(table.nrows))
#print("总列数:" + str(table.ncols))

# 获取整行的值 和整列的值,返回的结果为数组
# 整行值:table.row_values(start,end)
# 整列值:table.col_values(start,end)
# 参数 start 为从第几个开始打印,
# end为打印到那个位置结束,默认为none
#print("整行值:" + str(table.row_values(0)))
#print("整列值:" + str(table.col_values(1)))

# 获取某个单元格的值,例如获取B3单元格值
#cel_B3 = table.cell(3,2).value
#print("第三行第二列的值:" + cel_B3)

def read_xlrd(excelFile,tablename):
  data = xlrd.open_workbook(excelFile)
  #table = data.sheet_by_index(0)
  table = data.sheet_by_name(tablename)
  print("总行数:" + str(table.nrows))
  print("总列数:" + str(table.ncols))
  dataFile = []

  for rowNum in range(table.nrows):
    # if 去掉表头
    if rowNum > 0:
      dataFile.append(table.row_values(rowNum))

  return dataFile
  

workbook = xlwt.Workbook(encoding = 'ascii')
worksheet = workbook.add_sheet('sheet1')

def writeLine(row ,line):
  col=0
  while col <len(line):
    worksheet.write(row,col, line[col])
    col+=1

filename1='./附件7:溶洞钻孔、埋管、注浆.xlsx' 
data1=read_xlrd(filename1,'20200404')
filename2='./设计之都溶洞注浆台账.xlsx' 
data2=read_xlrd(filename2,'Sheet1')
data=[]
for row in data1[4:]:
  #print(row[0],row[1])
  data.append([row[0],row[1]])
#print(data)
result=[]
i=0
for row in data2[1:]:
  
  buf=[row[1],row[2]]
  if buf not in data:
    print(row,'不存在')
    writeLine(i, row)
    i+=1
workbook.save('result.xlsx')

之后生成结果result.xlsx文件

Python实现读取并写入Excel文件过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用代理抓取网站图片(多线程)
Mar 14 Python
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
使用Python写个小监控
Jan 27 Python
Python中%r和%s的详解及区别
Mar 16 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Python实现进程同步和通信的方法
Jan 02 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
Windows平台Python编程必会模块之pywin32介绍
Oct 01 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
Python如何发送与接收大型数组
Aug 07 Python
Python正则表达式如何匹配中文
May 27 #Python
使用python创建Excel工作簿及工作表过程图解
May 27 #Python
Python实现疫情通定时自动填写功能(附代码)
May 27 #Python
Python unittest单元测试openpyxl实现过程解析
May 27 #Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 #Python
python如何求100以内的素数
May 27 #Python
pytorch查看通道数 维数 尺寸大小方式
May 26 #Python
You might like
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
php实现可运算的验证码
2015/11/10 PHP
PHP多维数组排序array详解
2017/11/21 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
qTip2 精致的基于jQuery提示信息插件
2012/02/17 Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
Python求算数平方根和约数的方法汇总
2016/03/09 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
keras得到每层的系数方式
2020/06/15 Python
Python 解析简单的XML数据
2020/07/24 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
幼儿园新学期寄语
2014/01/18 职场文书
爱护草坪标语
2014/06/24 职场文书
商务经理岗位职责
2014/07/30 职场文书
实习协议书
2015/01/27 职场文书
综合办公室岗位职责
2015/04/11 职场文书
拉贝日记观后感
2015/06/05 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers