前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xlwings库基本使用

xlwings库基本使用

作者头像
Crayon鑫
发布2023-10-10 16:15:44
6430
发布2023-10-10 16:15:44
举报
文章被收录于专栏:用户8818411的专栏

🚵 前言

首先,xlwing免费开源,功能强大;pro版本商业收费,个人免费。 但是也有缺点,xlwing必须配合Excel来使用。 如果想在linux上使用,我还是推荐使用pandas或者openpyxl xlwing配合jupyter可以交互式操作excel文档。xlwing可以像VBA宏一样操作Excel文档。可以很好的适配pandas和matplotlib

xlwing官方文档

🚵 导入库

代码语言:javascript
复制
import xlwings as xw 

🚵 打开Excel

打开Excel文件有两种方式,,一种是实例化xw.App(),另一种是你手动双击Excel文件打开(Excel通常打开方式) 两种方式都可以打开,选其一就可。

第一种方式打开Excel

代码语言:javascript
复制
app=xw.App(visible=True,add_book=False) 

add_book表示打开Excel的时候是否创建新的工作簿

建议这样写,避免程序出错也能关闭Excel软件

代码语言:javascript
复制
with xw.App(visible=True,add_book=False) as app: # 这样写就不用再写app.kill()了,会自动关闭Excel软件

补充: 这是我认为比较标准的方式,编写正式脚本批处理命令的时候使用这个。

第二种方式打开Excel

双击Excel文件,(emmm,这种方式应该都会吧。。。)

补充: 如果想在代码中获取xw.App对象,可以使用以下代码:

代码语言:javascript
复制
# 第一种方式:
app = xw.apps.active
# 第二种方式:
app = xw.apps[3508] # 这个3508是excel程序运行的PID,每次启动Excel都不一样可以通过xw.apps.keys()或者任务管理器查看

🚵 工作簿操作(Book)

添加工作簿

代码语言:javascript
复制
wb = app.books.add()

或者

代码语言:javascript
复制
wb = xw.Book() # 可以不用实例化xw.App()

打开工作簿

代码语言:javascript
复制
wb = app.books.open(r'F:\ab.xlsx')  # 打开
# 或者 wb = xw.Book(r'F:\ab.xlsx')

绑定工作簿

如果有多个工作簿同时打开了,想获取活动的工作簿,可以用以下代码:

代码语言:javascript
复制
# 第一种方式
wb = xw.books.active  # 使用xw接口(可以不用实例化app,但是必须有个excel开着)

# 第二种方式
app = xw.apps.active
wb = app.books.active  # 使用app接口(必须实例化app,)

# 这两种方式各有`优缺点`,第一种方式更“短”,第二种方式更规范化,灵活运用。

如果想获取多个已打开工作簿中的某一个,可以通过索引的方式

代码语言:javascript
复制
wb = xw.books[1] # 第二个工作簿赋给wb变量

# 或者
# wb =  app.books[1]

保存工作簿

前面三个部分(添加工作簿“”,“ 对已有工作簿操作”,“绑定工作簿”)是获取Book对象。程序的最后肯定是保存了,保存的时候可以选择路径。

代码语言:javascript
复制
wb.save(r'F:\aa.xlsx')  # 保存
wb.close() # 关闭

# `wb.close()`要注意一下,关闭的是工作簿,Excel软件没有关闭

🚵 关闭Excel

代码语言:javascript
复制
app.kill() # 关闭Excel软件

🚵 表操作

1.添加表

代码语言:javascript
复制
sht=wb.sheets.add("Name") 

2. 选取sheet表

代码语言:javascript
复制
sht = wb.sheets[0]  #工作表序号 sht1 = wb.sheets['Name']  #工作表名称 

🚵 单元格选择

1.单个单元格的选择:

代码语言:javascript
复制
rng = sht.range('a1')#方式1 
rng = sht['b1'] #方式2 
rng = sht[0,0]  #方式3 

2.区域单元格的选择:

代码语言:javascript
复制
rng = sht.range('a1:a5')  #方式一 
rng = sht['a1:b5']   #方式二 
rng = sht[:5,0]  # 表示第一列的前五行 
sht.range('a1').expand('table')# 表示从a1单元格开始创建一个表格区域 

🚵 获取工作表列数和行数

代码语言:javascript
复制
info = sht.used_range
nrows = info.last_cell.row # 行数
ncolums=info.last_cell.column # 列数

🚵 单元格的操作

1.赋值

代码语言:javascript
复制
sht["a1"].value=

🚵 格式操作

设置单元格数据格式

代码语言:javascript
复制
sht["a1:a10"].api.NumberFormat = "@"  #设置为文本格式

sht["a1:a10"].api.NumberFormat = "0.0"  #设置为小数格式

sht["a1:a10"].api.NumberFormat = "yyyy-mm-dd"  #设置为"-"连接的日期格式

sht["a1:a10"].api.NumberFormat = "0%"  #设置为百分比

清除格式

代码语言:javascript
复制
rng.clear()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚵 导入库
  • 🚵 打开Excel
    • 第一种方式打开Excel
      • 第二种方式打开Excel
      • 🚵 工作簿操作(Book)
        • 添加工作簿
          • 打开工作簿
            • 绑定工作簿
              • 保存工作簿
              • 🚵 关闭Excel
              • 🚵 表操作
                • 1.添加表
                  • 2. 选取sheet表
                  • 🚵 单元格选择
                    • 1.单个单元格的选择:
                      • 2.区域单元格的选择:
                      • 🚵 获取工作表列数和行数
                      • 🚵 单元格的操作
                        • 1.赋值
                        • 🚵 格式操作
                          • 设置单元格数据格式
                            • 清除格式
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档