前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Make Excel Fly,python库xlwings的使用。

Make Excel Fly,python库xlwings的使用。

原创
作者头像
JQ实验室
发布于 2022-06-09 02:02:23
发布于 2022-06-09 02:02:23
1.3K00
代码可运行
举报
文章被收录于专栏:实用技术实用技术
运行总次数:0
代码可运行

1、xlwings模块介绍:

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

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

代码语言:txt
AI代码解释
复制
1)xlwings支持.xls读,支持.xlsx文件读写。
代码语言:txt
AI代码解释
复制
2)支持Excel操作。
代码语言:txt
AI代码解释
复制
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表示;

代码语言:txt
AI代码解释
复制
App就是我们打开的一个Excel应用,在此实例下创建工作薄。因此我们要创建工作簿,就必须先创建App实例。一个App实例可以创建多个工作簿Book。
代码语言:txt
AI代码解释
复制
单个工作簿用Book表示,工作簿集合用Books表示;
代码语言:txt
AI代码解释
复制
单个工作表用Sheet表示,工作表集合用Sheets表示;
代码语言:txt
AI代码解释
复制
区域用Range表示,既可以是一个单元格,也可以是一片单元格区域。

读取Excel文件的操作;

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

写文件操作:

代码语言:txt
AI代码解释
复制
最简单的写文件操作步骤:

使用xlwings.App()打开Excel

代码语言:txt
AI代码解释
复制
使用app.books.add()添加一个工作簿
代码语言:txt
AI代码解释
复制
使用book.sheets.add()添加一个工作表
代码语言:txt
AI代码解释
复制
使用sheet.range('A1').value="A"给指定的单元格赋值
代码语言:txt
AI代码解释
复制
使用book.save('文件路径.xlsx')保存文件;
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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()

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

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
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程序;

代码语言:c
代码运行次数:0
运行
AI代码解释
复制
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文件进行处理;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、xlwings模块介绍:
  • 2、xlwings库的安装与更新
  • 3、xlwings的基本使用:
    • 在xlwings中:
    • 读取Excel文件的操作;
    • 写文件操作:
  • xlwings的app激活;
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档