目录

安装

使用

创建App

工作簿Book与Books

工作表Sheet

引用区域与单元格操作


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

  • xlwings支持.xls读,支持.xlsx文件读写。
  • 支持Excel操作。
  • 支持VBA。
  • 强大的转换器可以处理大部分数据类型,包括在两个方向上的numpy array和pandas DataFrame。

文档链接:

xlwings 文档https://docs.xlwings.org/en/stable/index.html

安装

pip install xlwings

使用

在我们操作之前可以先了解下,如下内容:

  • 新建:创建一个不存在的工作薄或者工作表
  • 打开:打开一个已经存在的工作薄
  • 引用:就是告诉程序,你要操作哪个对象。比如你打开了A、B、C三个工作薄,现在你想操作A工作薄,就要先引用A
  • 激活:我们可以同时打开多个工作薄,但是一次只能操作一个工作簿,我们正在操作的这个工作薄称为当前活动工作薄。

在xlwings中

  • Excel程序用App来表示,多个Excel程序集合用Apps表示;
  • 单个工作簿用Book表示,工作簿集合用Books表示;
  • 单个工作表用Sheet表示,工作表集合用Sheets表示;
  • 区域用Range表示,既可以是一个单元格,也可以是一片单元格区域。

对Excel进行操作主要使用如下三个类:

import xlwings as xwxw.App 打开一个excel应用xw.Book 创建一个工作薄xw.Sheet 创建一个工作表

创建App

app=xw.App(visible=True,add_book=False)

参数visible:用来设置程序是否可见,True表示可见(默认),Flase不可见

参数add_book用来设置是否自动创建工作簿,True表示自动创建(默认),False不创建。当设置成add_book=False时,可以创建App,但是还未生成PID,只有当这个App创建了工作簿后,才会生成自己的PID 。

app.pid

即可查看创建的app的pid值。

在操作一个app对象的时候要先引用工作薄,但是引用并不代表激活,激活就是当前操作的工作薄。

wb=app.books.add()

表示在该app下创建一个工作簿。

关闭app有两种方式:

app.kill():通过杀掉进程,强制Excel app退出app.quit():退出excel程序,不保存任何工作簿

工作簿Book与Books

一个app可以包含多个工作薄,创建工作薄有两种方式:

  • xw.Book()

    • 方式1是创建一个新的App,并在新App中新建一个Book
  • xw.books.add()
    • 是在当前App下新建一个Book

如果是打开一个已存在的则可以

wb = app.books.open('绝对或者相对路径的excel文件')
'或者
wb = xw.Book('绝对或者相对路径的excel文件')

激活工作簿

wb.activate()
# 如果steal_focus=True, 则把窗口显示到最上层,并且把焦点从Python切换到Excel
wb.activate(steal_focus=True)

保存工作薄:

wb.save()
# 或者使用指定路径保存
wb.save('存储路径')

关闭工作薄:

wb.close()

需要注意的是,关闭工作簿并不会保存,所以在关闭前记得保存一下。 也可以与with语句一起使用,实现关闭资源。

工作表Sheet

新建Sheet

sht = wb.sheets.add()
# 或者
sht = wb.sheets.add('test',after='sheet2')

参数1为工作表名称,省略的话为Excel默认名称,参数2为插入位置,可选before或者after

引用某一个Sheet,可以通过下面方式

sht = wb.sheets('sheet1') # 指定名称获取sheet工作表sht = wb.sheets(1) # 根据序号获取sht = xw.sheets.active #获取当前活动的工作表

sheet对象可以调用的常用方法有:

# 清除工作表所有内容和格式
sht.clear()
# 清除工作表的所有内容但是保留原有格式
sht.clear_contents()
# 删除工作表
sht.delete()
# 自动调整行高列宽
sht.autofit('c')
# 在活动工作簿中选择
sht.select()

引用区域与单元格操作

在操作区域或者单元格之前,首先就要引用他们,其实就是表明你要操作的区域或者单元格是哪些。可以认为区域是多个单元格。

引用区域的方式有很多种,下面列举一下常见的引用方式:

xw.Range('A1:D4')
xw.Range((1,1), (4,4))
xw.Range(xw.Range('A1'),xw.Range('D4'))
xw.Range(xw.Range('A1:E6'),xw.Range('C3:D7'))
xw.Range('NamedRange')
app.range("A1")  # 注意是小写的range
sht.range('A1')
xw.books['MyBook.xlsx'].sheets[0].range('A1')
sht['A1']
sht['A1:D4']
sht[0,5]
sht[:5,:5]

对区域或单元格进行操作:

  • 存储数据
# 存储单个数据
sht.range('a1').value = 'id'
# 存储单行数据
sht.range('a2').value = ['id', '姓名', '年龄']
# 存储多行数据
sht.range('a3').value = [['1', '2', '3'], ['4', '5', '6']]

存储多行数据的时候,需要是二维数组,内部的每一个数组则是一行数据

最后则是这样的效果。

读取数据

读取单个值
# 将A1的值,读取到a变量中
a=sht.range('A1').value将值读取到列表中
#将A1到A2的值,读取到a列表中
a=sht.range('A1:A2').value# 将第一行和第二行的数据按二维数组的方式读取
a=sht.range('A1:B2').value

清除与删除

# 清除range的内容
rng.clear_contents()
# 清除格式和内容
rng.clear()
# 删除
rng.delete(shift=None)

rng表示引用的区域

有关xlwings模块的使用看下面链接

零基础学习xlwings,看这篇文章就够了_qfxietian的博客-CSDN博客_xlwingshttps://blog.csdn.net/qfxietian/article/details/123822358?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165969529116781432917563%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165969529116781432917563&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123822358-null-null.142^v39^pc_rank_34,185^v2^control&utm_term=xlwings&spm=1018.2226.3001.4187

xlwings模块(数据保存为xlsx文件)相关推荐

  1. R将dataframe数据保存为csv文件

    R将dataframe数据保存为csv文件 目录 R将dataframe数据保存为csv文件 使用write.csv函数 使用reader包中的write_csv函数

  2. python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据

    文章目录: 1 数据说明 2 把数据集文件信息使用python pandas保存成csv文件 3 使用python pandas 读取csv的每行.每列数据 1 数据说明 1.在test_data目录 ...

  3. 如何使用jlink从flash中读取数据保存为bin文件到本地

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/skdkjxy/article/deta ...

  4. c#读取ini配置文件、将配置数据保存至ini文件

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#读取ini配置文件.将配置数据保存至ini文件 测试代码 static void Main() {string value = readini(& ...

  5. 将matlab中工作去的数据保存为.mat文件

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.工作区 二.利用save保存data和map数据到dm.mat文件中 前言 提示:这里可以添加本文要记录的大概内容 ...

  6. python将输出保存为txt_Python3将数据保存为txt文件的方法

    Python3将数据保存为txt文件的方法,具体内容如下所示:f = open("data/model_Weight.txt",'a') #若文件不存在,系统自动创建.'a'表示可 ...

  7. python 数据分析-读写数据csv、xlsx文件

    1.读写csv文件可以使用基础python实现,或者使用csv模块.pandas模块实现. 基础python读写csv文件 读写单个CSV 以下为通过基础python读取CSV文件的代码,请注意,若字 ...

  8. Python实现数据保存为PSV文件(先创建CSV,转换成PSV)

    CSV格式文件:分隔符 ',' comma逗号 PSV格式文件:分隔符'|',管道文件pipe-delimited text files TSV 格式文件:分隔符' '  tab空格 步骤: 1.先创 ...

  9. python爬虫-豆瓣爬取数据保存为html文件

    接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...

最新文章

  1. php的一些基本概念梳理
  2. 9.1 mnist_softmax 交叉熵多分类器
  3. 网易创新企业大会倒计时,云信将发布新一代音视频技术架构
  4. c语言不允许对数组的大小做动态定义,数组,C语言程序设计课件,与中南大学出版社教材相配套.ppt...
  5. 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)
  6. 面试最后HR都要问一句有没有什么问题要问我?
  7. mysql的日志迁移到mango_mysql 向mongo迁移备忘
  8. 使用自定义annotation接口进行aspectj动态缓存
  9. C# 委托和事件高级进阶
  10. 判断当前页面是否在微信浏览器中打开
  11. mina mysql_Mina源码阅读笔记(四)—Mina的连接IoConnector2
  12. Python数据库编程练习 ※
  13. 计算机交叉专业考研方向,与理工科交叉的计算机专业考研方向有哪些?
  14. MYSQL 数据库对象管理实验
  15. 算法与产品:抖音、快手的“气质”成因
  16. android apktool使用教程,Apktool 使用教程
  17. 量子计算机每次秒可达多少次,激光脉冲让运算速度提升百万倍 量子计算机有望实现室温运行...
  18. 高手教你ie主页被篡改怎么办|加个参数永远不怕IE主页被修改
  19. 自己写的java excel导出工具类
  20. 性能调优 - JVM

热门文章

  1. IE提示”不支持当前兼容性设置,请在运行此Web页之前禁用兼容性视图”
  2. android 朗读英文,Android中用TTS语音朗读一段英文
  3. 基于树莓派运行OpenWrt固件
  4. 超声波脉冲信号发生器设计
  5. 究极聚合,效率翻倍——CSDN浏览器助手体验测评
  6. 春松客服:做好开源客服系统 | Chatopera
  7. “普信男”威马能靠IPO翻身吗?
  8. cad计算机绘图知识点,cad制图初学入门方法与技巧
  9. 安卓中蓝牙对战游戏 (cocos2d-x 调用)
  10. Android 蓝牙游戏开发(一)