xlwings模块(数据保存为xlsx文件)
目录
安装
使用
创建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文件)相关推荐
- R将dataframe数据保存为csv文件
R将dataframe数据保存为csv文件 目录 R将dataframe数据保存为csv文件 使用write.csv函数 使用reader包中的write_csv函数
- python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据
文章目录: 1 数据说明 2 把数据集文件信息使用python pandas保存成csv文件 3 使用python pandas 读取csv的每行.每列数据 1 数据说明 1.在test_data目录 ...
- 如何使用jlink从flash中读取数据保存为bin文件到本地
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/skdkjxy/article/deta ...
- c#读取ini配置文件、将配置数据保存至ini文件
全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#读取ini配置文件.将配置数据保存至ini文件 测试代码 static void Main() {string value = readini(& ...
- 将matlab中工作去的数据保存为.mat文件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.工作区 二.利用save保存data和map数据到dm.mat文件中 前言 提示:这里可以添加本文要记录的大概内容 ...
- python将输出保存为txt_Python3将数据保存为txt文件的方法
Python3将数据保存为txt文件的方法,具体内容如下所示:f = open("data/model_Weight.txt",'a') #若文件不存在,系统自动创建.'a'表示可 ...
- python 数据分析-读写数据csv、xlsx文件
1.读写csv文件可以使用基础python实现,或者使用csv模块.pandas模块实现. 基础python读写csv文件 读写单个CSV 以下为通过基础python读取CSV文件的代码,请注意,若字 ...
- Python实现数据保存为PSV文件(先创建CSV,转换成PSV)
CSV格式文件:分隔符 ',' comma逗号 PSV格式文件:分隔符'|',管道文件pipe-delimited text files TSV 格式文件:分隔符' ' tab空格 步骤: 1.先创 ...
- python爬虫-豆瓣爬取数据保存为html文件
接<python爬虫-豆瓣数据爬取-正则匹配>中的案例五,将爬取的豆瓣租房信息网址和标题保存为html文件. 脚本修改如下: # -*-coding:utf-8 -*- import re ...
最新文章
- php的一些基本概念梳理
- 9.1 mnist_softmax 交叉熵多分类器
- 网易创新企业大会倒计时,云信将发布新一代音视频技术架构
- c语言不允许对数组的大小做动态定义,数组,C语言程序设计课件,与中南大学出版社教材相配套.ppt...
- 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)
- 面试最后HR都要问一句有没有什么问题要问我?
- mysql的日志迁移到mango_mysql 向mongo迁移备忘
- 使用自定义annotation接口进行aspectj动态缓存
- C# 委托和事件高级进阶
- 判断当前页面是否在微信浏览器中打开
- mina mysql_Mina源码阅读笔记(四)—Mina的连接IoConnector2
- Python数据库编程练习 ※
- 计算机交叉专业考研方向,与理工科交叉的计算机专业考研方向有哪些?
- MYSQL 数据库对象管理实验
- 算法与产品:抖音、快手的“气质”成因
- android apktool使用教程,Apktool 使用教程
- 量子计算机每次秒可达多少次,激光脉冲让运算速度提升百万倍 量子计算机有望实现室温运行...
- 高手教你ie主页被篡改怎么办|加个参数永远不怕IE主页被修改
- 自己写的java excel导出工具类
- 性能调优 - JVM