python自动化之使用xlwings读写excel文件

简介: xlwings的意思是给Excel插上翅膀,官网解释为Make Excel Fly。xlwings是一个可以实现从Excel调用Python,也可在python中调用Excel的库。开源免费,一直在更新。特点:

1、xlwings模块介绍:

xlwings的意思是给Excel插上翅膀,官网解释为Make Excel Fly。

xlwings是一个可以实现从Excel调用Python,也可在python中调用Excel的库。开源免费,一直在更新。特点:


1)xlwings支持.xls读,支持.xlsx文件读写。
2)支持Excel操作。
3)支持VBA。

xlwings支持操作xlsx和xls类型文件;

官方文档地址:https://docs.xlwings.org/en/stable/index.html

2、xlwings库的安装与更新

xlwings的安装或更新比较简单,Ctrl+右键选择打开命令框,

输入命令 pip install xlwings即可安装,默认安装的是最新版本,如果需要指定版本,则需要在安装时输入pip install xlwings==版本号;
升级xlwings版本,需要执行命令 pip install --upgrade xlwings

验证是否安装成功:

打开命令行窗口,输入python回车,然后输入import xlwings,如果为提示错误,则表示安装成功;使用xlwings.__VERSION__可以查看目前按照版本;

3、xlwings的基本使用:

### 在xlwings中:

  Excel程序用App来表示,多个Excel程序集合用Apps表示;
App就是我们打开的一个Excel应用,在此实例下创建工作薄。因此我们要创建工作簿,就必须先创建App实例。一个App实例可以创建多个工作簿Book。
单个工作簿用Book表示,工作簿集合用Books表示;
单个工作表用Sheet表示,工作表集合用Sheets表示;
区域用Range表示,既可以是一个单元格,也可以是一片单元格区域。

### 读取Excel文件的操作;

读取需要先实例化一个App对象,执行以下语句:
app = xw.App(visible=True, add_book=False);  实例化一个app并设置可见
app.display_alerts=False 设置不显示警告
wb = app.books.open('H://test.xlsx') 传入Excel文件路径打开文件;
获取第一个sheet表,执行语句:sht = wb.sheets[0]
​获取sheet表中单元格数据的方式如下:
print(sht.range('A1').value) 读取单个
print(sht.range((1, 1), (5, 5)).expand().value)  # 批量读取
print(sht.range(1, 1).expand('right').value)  # 按行读
print(sht.range(1, 1).expand('down').value)  # 按列读

### 写文件操作:

最简单的写文件操作步骤:
  ​使用xlwings.App()打开Excel
​使用app.books.add()添加一个工作簿
​使用book.sheets.add()添加一个工作表
使用sheet.range('A1').value="A"给指定的单元格赋值
​使用book.save('文件路径.xlsx')保存文件;

def writeExcel():
    #使用with打开excel,可以不关心关闭的问题,参数标识操作可见
    with xw.App(visible=True,add_book=False) as app:
        book = app.books.add() #创建一个工作簿
        sheet = book.sheets.add() #创建sheet表
        sheet.range('A1').value = '直接写入单元格数据'
        book.save('H://xlwings.xlsx')  #保存文件

#writeExcel()

def writeExcle2():
    book = xw.Book()
    sheet = book.sheets[0]
    sheet.range('A1').value = '直接写'
    book.save('H://xlwings.xlsx')  #保存文件
    book.close()

#writeExcle2()

除了单独写入一个单元格,还可以传入列表写入一行或一列数据;

def writeExcel3():
    ''''''
    wb = xw.Book()
    sht = wb.sheets[0]
    info_list = [['110202111111234','商品1',5],
    ['110202111118891','商品2','16'],
    ['110202111111004','商品3','20'],]
    # 写入表头
    titles = [['商品编号','商品名称','数量']]
    sht.range('a1').value = titles
    # 写入数据
    sht.range('a2').value = info_list
    # 保存数据
    wb.save('H://xlwings.xlsx')
    sht.range('a1').value=['商品编号1','商品名称2','数量3']  #修改
    wb.save()

xlwings的app激活;

每次使用xlwings打开一个新的Excel,都会生成一个app的编号,用于后续区分是哪一个app,用来识别不同的Excel程序;

def getApp():
    ''''''    
    app=xw.App()
    pid = app.pid
    # 就是这个App的PID
    app1=xw.App()
    pid1 = app1.pid
    print(pid,pid1) 
    #wps没有这些
    #apps = xw.apps
    #print(apps.count) #查看app数量
    #keys = apps.keys()
    #print(keys) #查看app的pid值
    #app.activate() #激活当前app

​后续可以通过app.active激活指定的Excel文件进行处理;

相关文章
|
10天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
84 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
9天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
21天前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
28天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
67 3
|
1月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
31 2
|
1月前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
1月前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
1月前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
32 1
|
21天前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。