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中的mock库对Python代码进行模拟测试
Apr 16 Python
python中函数默认值使用注意点详解
Jun 01 Python
利用Python破解斗地主残局详解
Jun 30 Python
Python三级菜单的实例
Sep 13 Python
PyQt5实现下载进度条效果
Apr 19 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
python儿童学游戏编程知识点总结
Jun 03 Python
python3实现单目标粒子群算法
Nov 14 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
详解python方法之绑定方法与非绑定方法
Aug 17 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 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函数utf8转gb2312编码
2006/12/21 PHP
php 日期时间处理函数小结
2009/12/18 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
JS array 数组详解
2009/03/22 Javascript
javascript Math.random()随机数函数
2009/11/04 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
python实现将元祖转换成数组的方法
2015/05/04 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
详解supervisor使用教程
2017/11/21 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
给校长的建议书400字
2014/05/15 职场文书
庆元旦活动总结
2014/07/09 职场文书
合作协议书模板2014
2014/09/26 职场文书
回复函格式及范文
2015/07/14 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
python lambda 表达式形式分析
2022/04/03 Python
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers