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 import用法以及与from...import的区别
May 28 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
python属于解释型语言么
Jun 15 Python
python 读取.nii格式图像实例
Jul 01 Python
python map比for循环快在哪
Sep 21 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 Python
Python列表的索引与切片
Apr 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
node后端服务保活的实现
2019/11/10 Javascript
python私有属性和方法实例分析
2015/01/15 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
深入理解Python中的super()方法
2017/11/20 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
在Python中定义一个常量的方法
2018/11/10 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
毕业自荐信
2013/12/16 职场文书
新春文艺演出主持词
2014/03/27 职场文书
2014年图书室工作总结
2014/12/09 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
培训督导岗位职责
2015/04/10 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
爱国教育主题班会
2015/08/14 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
公司年会主持词范文!
2019/05/07 职场文书
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android