添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一、背景
有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

xlwings 操作excel def open(filename=None,visible=False, readonly=False, password=None,write_password=None): #filename 文件路径,打开,没有文件名则创建 #visible 打开是否可见 #readonly 是否打开只读 #password 文件读取密码 #write_password 设置文件密码 该方法会启动一个打开excel的进程并打开文档,通过visible来控制这个Excel进程是否可见。返回一个Excel对象。 workbook = open(r”C:\Users\M 一、总结(点击显示或隐藏总结内容)一句话总结:xlwingsPython操作Excel的一个第三方库,支持.xls读写,.xlsx读写,操作非常简单,功能也很强大1、xlwings 中的逻辑:应用->工作簿->工作表->范围 对应的代码?应用:一个应用(一个xlwings程序):app = xw.App(visible=True, add_book=False)工作簿(... 可以用来处理Excel文件python模块很多,如XlsxWriter、xlrd、 xlwt、xlutils、openpyxl和xlwings等。下面是一张功能对比表: 可以看出,xlwings模块的功能最齐全。可以读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件xlwings模块还能与Excel VBA结合使用,实现更加强大的数据输入和分析功能例:创建一个新的工作簿 运行之后微软系统自带的Excel就会弹出来 代码解析: 我们重点看一下第二行和第三行代码, 在Python中,有许多可以读写Excel文件的库,但是我们今天将关注一个名为xlwings的库。我们以读取一个Excel文件为例,xlwings提供了两种方式读取Excel:一种是使用pandas DataFrame,另一种是直接使用Excel中的单元格。在Python使用xlwings库还可以向Excel文件中写入数据,这使得PythonExcel之间的交互更加便捷。与读取Excel文件类似,我们需要打开文件并创建一个指向工作表的对象,然后使用write()方法将数据写入工作表中。 在日常工作中,或多或少会使用excel工具。有时繁琐重复的excel会让人感到很无聊和乏味,并且浪费大量的时间。如果你也是这样,这个时间救星就到了,学好Pythonxlwings包,摸鱼无烦恼。文章为个人笔记,部分代码需要根据实际情况进行调整。............ 目录安装**前置知识**详细使用步骤**一、打开Excel程序****二、保存、退出、关闭****三、新建 Excel 文件****四、读取内容****五、写入数据**1.写入当前文件2.如果要写入新的文件,可以新建一个文件然后再写入**六、获取数据范围****七、输出并修改行高列宽****八、获取及设置公式****九、 获取、设置及清除颜色格式** xlwings 是一个非标准库,需要在命令行中安装,在终端(Mac)/命令行(Win)使用pip安装即可,一般不会出现什么问题。 pip install 3)需要先勾选RunPythonUseUDFServer,左边的interpreter需要填入Python.exe的路径,PYTHONPATH填入所调用python脚本文件的路径(不包括文档名)如D\Python\code,UDFModules填入文档名,如Test.py注意为.py后缀文件。(1)首先需要知道xlwings包的安装位置,不知道的话可以通过查看xlwings任意函数的__code__获取函数的所在路径来找到安装位置。(5)在VBA中添加引用,勾选xlwings。...... xlwings模块的功能是最齐全的。它不仅能读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件Excel文件Python模块有很多,如XlsxWriter、xlrd、xlwt、xlutils、openpyxl和xlwings等。操作流程:启动excel程序—>新建工作簿(包含多个sheet表,默认1个)—>打开工作簿—>新建工作表—>操作工作簿。利用xlwings模块打开一个已有的工作簿,需要注意的是,指定的工作簿必须真实存在,并且不能处于已打开的状态。 随着python自动化测试的学习,我们也需要操作excel,比如读写功能,看了其他的一些库,还是的xlwings使用范围比较广操作也比较好上手,本文是关于的使用进行记录,若有不妥可随时留言。 3. xlwing学习 xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。 xlwings还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。 最重要的是xlwi xlwings的意思是给Excel插上翅膀,官网解释为Make Excel Fly。xlwings是一个可以实现从Excel调用Python,也可在python中调用Excel的库。开源免费,一直在更新。特点: xlwings支持操作xlsx和xls类型文件;官方文档地址:https://docs.xlwings.org/en/stable/index.htmlxlwings的安装或更新比较简单,Ctrl+右键选择打开命令框,验证是否安装成功: 读取Excel文件操作; 写文件操作: 除了单独写入一