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文件进行处理;

相关文章
|
1月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
2月前
|
机器学习/深度学习 前端开发 数据处理
利用Python将Excel快速转换成HTML
本文介绍如何使用Python将Excel文件快速转换成HTML格式,以便在网页上展示或进行进一步的数据处理。通过pandas库,你可以轻松读取Excel文件并将其转换为HTML表格,最后保存为HTML文件。文中提供了详细的代码示例和注意事项,帮助你顺利完成这一任务。
105 0
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
305 10
|
3月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
190 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
4月前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
83 2
|
4月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
268 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
4月前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
141 0
|
2月前
|
存储 Java easyexcel
招行面试:100万级别数据的Excel,如何秒级导入到数据库?
本文由40岁老架构师尼恩撰写,分享了应对招商银行Java后端面试绝命12题的经验。文章详细介绍了如何通过系统化准备,在面试中展示强大的技术实力。针对百万级数据的Excel导入难题,尼恩推荐使用阿里巴巴开源的EasyExcel框架,并结合高性能分片读取、Disruptor队列缓冲和高并发批量写入的架构方案,实现高效的数据处理。此外,文章还提供了完整的代码示例和配置说明,帮助读者快速掌握相关技能。建议读者参考《尼恩Java面试宝典PDF》进行系统化刷题,提升面试竞争力。关注公众号【技术自由圈】可获取更多技术资源和指导。
|
4月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
4月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
260 4

热门文章

最新文章

推荐镜像

更多