一、背景

有2种模块可以对Execl文件,一种是xlwt 方式,需要安装三个库文件 xlrd(读Excel)xlwt(写Excel)xlutils(修改Excel),也是网上介绍文章最多的一种方法,一种是xlwings方式,只要安装一个库文件。第一种方式将读写修改分模块,支持Excel表格样式设计,第二种方式不支持表格样式设计,支持对Excel进行读写操作。由于老猿目前只要用Execl进行读操作,同时觉得装一个库文件简单,因此选择的是xlwings方式。

二、软件安装

才开始使用pip install xlwings安装,结果超时了,果断改成了使用国内的镜像来安装,很快完成,命令为:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlwings

三、库文件相关文档

xlwings库官方地址:https://docs.xlwings.org/en/stable/

四、xlwings库主要操作方法

1、设置Excel操作模式

1)语法:App(visible=False, add_book=False)

2)语法释义:表示处理过程是否可视,也就是处理Excel的过程会不会显示出来,即是否出现Excel的界面,add_book表示是否打开新的Excel程序,也就是是不是打开一个新的excel窗口,如果为True,且visible为True,则立即打开一个空白的Excel。。

2、打开文件

1)方法1:app.books.open(文件名),其中的app为设置Excel操作模式中App方法返回的结果

2)方法2:Book(文件名)

这两种方法打开文件返回的结果类型是相同的,类型为xlwings.main.Book,二者的差别经验证测试,发现如果是在对应文件已经打开的情况下,使用app.books.open再去打开可以重复打开,但Book不会重复打开。且如果是一个程序内多次调用app.books.open打开同一个文件也不会重复打开。

测试代码:

>>> import xlwings as Excel
>>> from time import sleep
>>> def openexcel(visible=False, add_book=False)
app = Excel.App(visible, add_book)
print("app created!")
f1=app.books.open(r"c:\temp\csdn积分数据.xls")
print("f1 opened!")
sleep(2)
f2=app.books.open(r"c:\temp\csdn积分数据.xls")
print("f2 opened!")
sleep(2)
f3 = Excel.Book(r"c:\temp\csdn积分数据 - 副本.xls")
print("f3 opened!")
sleep(2)
f4 = Excel.Book(r"c:\temp\csdn积分数据 - 副本.xls")
print("f4 opened!") >>> openexcel(True,True)
app created!
f1 opened!
f2 opened!
f3 opened!
f4 opened!
>>> openexcel(True,True)
app created!
f1 opened!
f2 opened!
f3 opened!
f4 opened!

3.文件打开后的访问

假设文件打开后的返回结果为f,则打开文件后:

1)访问Excel的sheet

sheet = f.sheets[index]

或者

sheet = f.sheets[‘sheet名’]

注意:index是sheet页的序号,从0开始。

2)访问sheet的记录数

sheet.used_range.last_cell.row

3)访问sheet的列数

sheet.used_range.last_cell.column

4)获取i行j列的数据

value = sheet.range(i,j).value

5)获取i行j列开始到j+10列的数据

value = sheet.range((i,j),(i,j+10)).value

6)读取第i行整行

value = sheet.range(‘Ai’).expand(‘right’).value



value = sheet.range(i,1).expand(‘right’).value

6)读取第k列整列

value = sheet.range(‘k1’).expand(‘down’).value



alue = sheet.range(1,k).expand(‘down’).value

7)读取整个sheet的数据

data = sheet.range(‘A1’).expand().value

4、sheet内容写入:

直接对sheet数据赋值,将读取语句的方式改成赋值就可以了,如果写入位置原来有数据,将被写入数据覆盖。

1)i行j列写入

sheet.range(i,j).value = value

2)写入i行j列开始到j+10列的数据

sheet.range((i,j),(i,j+10)).value = values

其中values为一个有11个元素的列表。

3)第i行写入整行

sheet.range(i,1).expand(‘right’).value = values

4)第k列写入整列

sheet.range(1,k).options(transpose=True).value = values

5、文件保存

f.save(文件名)

如果没有文件名参数保存到打开的Excel文件中,如果给定文件名参数则保存到该指定文件名对应文件,该文件可以是已经打开的文件也可以是另一文件。

6、文件访问后关闭

f.close()

7、终结应用

app.quit()

五、Excel文件读取案例

>>> def readExcel(filename,sheetname):
excelApp = excel.App(False,False)
excelFile = excelApp.books.open(filename)
sheet = excelFile.sheets[sheetname]
rowCount = sheet.used_range.last_cell.row
colCount = sheet.used_range.last_cell.column
for line in range(1,rowCount+1):yield sheet.range(line,1).expand('right').value
excelFile.close()
excelApp.quit()
excelApp.kill() #有时quit退出不成功可以使用kill >>> for line in readExcel(r"c:\temp\csdn积分数据.xls",0):print(line)

博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

Python学习随笔:使用xlwings读取和操作Execl文件的更多相关文章

  1. Python学习随笔:使用xlwings读取和操作Execl文件的数字需要注意的问题

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在使用xlwings读取Excel文件中的数据时,所有的数字不论是整数.浮点数还是文本存放的数字,在 ...

  2. Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法

    ☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...

  3. Python 学习随笔 - 1 - 基础数据类型、变量 及 基本运算

    仅有的C语言的基础都是大学时学的: 准备赶潮流,开始学习Python. 随笔记录学习过程中,靠一点点C语言基础难以去理解的地方,以及区别于C语言的地方,做些笔记作为以后参考. Python 解释器直接 ...

  4. Java学习笔记(二)——Java操作properties文件

    [前面的话] 前段时间在学习和玩java web相关的东西,对于这些技术,一边学习,一边做东西,一边总结,希望可以一边成长和有所收获.有时总是思考太多反而成为了前进的阻力,所以对于生活还是简单一些,不 ...

  5. Python学习笔记3-文件的简单操作

    Python中的文件操作 Python中文件打操作离不开两个模块  os 和 shutil os:操作文件.目录: Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话, ...

  6. Python学习笔记【第七篇】:文件及文件夹操作

     介绍 我们用pytthon.C#.Java等这些编程语言,想要把文件(文字.视频....)永久保存下来就必须将文件写入到硬盘中,这就需要我们应用程序去操作硬件,我们这些编程语言是无法直接操作硬件的. ...

  7. python学习笔记(十):操作excel

    一.python操作excel,python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的 ...

  8. python学习随笔(一)

    我是为记录学习python的过程而开通了博客,希望以后自己能看看,也希望能分享一些给初学者. 话不多说,开始第一篇. (一)python解释器. python2和3,现在python2是主流,但是py ...

  9. python学习笔记(九):操作数据库

    我们在写代码的时候,经常会操作数据库,增删改查,数据库有很多类型,关系型数据库和非关系数据库,这里咱们介绍一下python怎么操作mysql.redis和mongodb. 一.python操作mysq ...

随机推荐

  1. npm的命令参数 --save-dev和 --save两者有什么区别?

    我们在安装npm包的时候经常会遇到 --save-dev 和 --save 这两个命令参数,两个命令都是往package.json文件里写入信息,两者有什么区别呢? 1. --save 会把依赖包名称 ...

  2. (数据科学学习手札98)纯Python绘制满满艺术感的山脊地图

    本文示例代码及附件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 下面的这幅图可能很多读者朋友们都看到过,这 ...

  3. 解决 Vmware 服务拒绝访问的问题

    背景 在服务页面想将 VMware NAT Service 设置为自动开启的,但是保存的时候显示拒绝访问,如下图 解决方案 想到在本机的火绒启动项管理里面将 VMware NAT Service 设置 ...

  4. 3. Spark常见数据源

    *以下内容由<Spark快速大数据分析>整理所得. 读书笔记的第三部分是讲的是Spark有哪些常见数据源?怎么读取它们的数据并保存. Spark有三类常见的数据源: 文件格式与文件系统:它 ...

  5. waf 引擎 云原生平台tproxy 实现调研

    了解了基本 云原生架构,不清楚的查看之前的文章:https://www.cnblogs.com/codestack/p/13914134.html 现在来看看云原生平台tproxy waf引擎串联实现 ...

  6. 异常记录-Dialog样式踩坑

    好久没记录文档了,拖了老半个月,终于空下来时间,为了避免以后踩坑,必须记录记录. 背景: 为activity设置样式为弹窗activity 异常一: activity设置style后,布局不能够正常显 ...

  7. spring boot 视频截图

  8. 一个工作三年左右的Java程序员和大家谈谈从业心得

    转发链接地址:https://mp.weixin.qq.com/s/SSh9HcA5PgMHv7xiolQkig 貌似这一点适应的行业最广,但是我可以很肯定的说:当你从事web开发一年后,重新找工作时 ...

  9. Linux bash反弹shell原理引起的一点思考

        最近,一起做安全测试的兄弟问我:Linux反弹shell的命令是什么,我毫不犹豫地在笔记中找到发给了他,可是脑海中突然闪过有个疑问,为啥这样能反弹shell呢,用了那么多次却从来没有想过这个问 ...

  10. 云计算之路-出海记:建一个免费仓库 Amazon RDS for SQL Server

    上周由于园子后院起火,不得不调兵回去救火,出海记暂时停更,这周继续更新,"出海记"记录的是我们在 AWS 上建设博客园海外站的历程. 在这一记中记录的是我们基于 AWS 免费套餐( ...