xlwings 操作 excel
xlwings:
xlwings是一个Python库,它使Python的一些数据分析特性可以在Excel实例中使用,包括对numpy数组、pandas Series和DataFrame的支持。与其他任何Python库一样,我们可以使用pip或conda等常用方法来安装它。详细文档(https://www.kancloud.cn/gnefnuy/xlwings-docs/1127455)
在xlwings中,有四种主要的对象类型,按递减的层次顺序排列:App(代表一个Excel实例)、Book、Sheet和Range。除了这些之外,我们还将处理Chart和Shape对象。
一 application 操作:
1 导入:
import xlwings as xw
2 打开 excel
app = xw.App(visible=True,add_book=True) #visible是否可见。False表示后台运行。 add_book 是否新建一个工作簿
其他操作:
app.screen_updating = False
# :屏幕更新,就是说代码对于excel的操作你可以看见,关闭实时更新可以加快脚本运行。默认是True。
app.pid #App进程pid
app.books #返回一个打开的全部workbook的列表。Python打开的和手动打开的是不互通的
终止进程,强制退出。
app.quit() #不保存的情况下,退出excel程序
二 workbooks
1新建wk对象
命令有很多,选择一个常用的就好。
wb = app.books.add() #创建新的book
wk = xw.Book()
wk = xw.books.add()
2 打开 excel文件
wb = app.books.open('filepath')
wk = xw.Book('filepath')
wk = xw.books.open('filepath')
3 打开未储存或未关闭的excel实例
wk = xw.Book('Book1')
wk = xw.books['Book1'] #也可以使用索引
如果在两个Excel实例中打开了相同的文件,则需要完全限定它并包含应用程序实例。 您将通过xw.apps.keys()
找到您的应用实例密钥(PID):
xw.apps[10559].books['FileName.xlsx']
查看所有的实例进程:
xw.apps.keys() #输出list kill所有的实例进程:
for i in xw.apps.keys():
i = 'taskkill/pid ' + str(i) + ' -t -f'
os.system(i)
4.保存
wb.save(path=None)#:保存工作簿,若为指定路径,保存在当前工作目录。
5. 关闭
wk.close() #在没有保存的情况下关闭。
三 对worksheet 操作
wb = app.books.open('im.xlsx')
sheet = wb.sheets[0]
1 返回操作对象
sheet.activate #<bound method Sheet.activate of <Sheet [im.xlsx]Sheet1>>
2 返回sheet指定的book
sheet.book
3 返回-个range对象,表示sheet上所有的单元格
sheet.cells #<Range [im.xlsx]Sheet1!$1:$1048576> 可以使用 sheet.cells[0,0].value 获取cell值。
4 获取或设置Sheet的名称
sheet.name sheet.names 返回所有的工作表特定名称。
5 获取sheet中的所有图表集合
sheet.charts
6 清空表中所有数据和格式。
sheet.clear()
7 清楚工作表的内容,但保留格式
sheet.clear_contents()
8 删除工作表
sheet.delete()
9 返回表索引(与excel相同)
sheet.index
10 创建一个新的Sheet并使其成为活动工作表
wb.sheets.add
(name=None, before=None, after=None)
#参数:name(str,default None) - 新工作表的名称。 如果为None,则默认为Excel的name.before (Sheet, default None) - 一个对象,指定在新工作表添加之前的added.after (Sheet, default None) - 指定工作表之后的工作表的对象 表格已添加。
11 在整个工作表上自动调整列,行或两者的宽度
sheet.autofit(axis=None) 参数:axis (string, default None) –要自动调整行, 使用以下之一: rows 或 r,要自动调整列, 使用以下之一: columns h c,要自动调整行和列, 不提供参数
四 操作range
1 引用区域
sheet.range('A1:F8') #使用value可获取A1-F8的数据,以二元list展开
2 引用单元格
sheet.range(‘A1’) # .value 获取单元格值
3 单元格赋值
sheet.range('A1').value="key"
4 按行写入
sheet.range('A1').value=[1,2,3,4,5]
5 按列写入
sheet.range('A1').options(transpose=True).value=[1,2,3,4,5]
6 获取行数
sheet.used_range.last_cell.row
7 获取列数
sheet.used_range.last_cell.column
8 获取连续的整行数据
sheet.range('A1').expand('right').value
9 获取连续的整列数据
sheet.range('A1').expand('down').value
10 获取行数和列数
sheet.range(1, 1).expand().shape
xlwings 操作 excel的更多相关文章
- 一个使用xlwings操作excel数据优化60倍处理效率的案例
☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿在将自己的博文数据(包括url地址.标题和阅读数量)从博客中获取后,使用xlwings保存到excel对象时发现,不同的处理方法性能相差非常大. ...
- Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法
☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- 利用 Python 插件 xlwings 读写 Excel
Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...
- 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)
很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...
- C#通过NPOI操作Excel
参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...
- POI操作Excel
POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...
- NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析
哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了... 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...
- VB操作EXCEL文件
用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel. ...
随机推荐
- CodeForces - 556D Case of Fugitive (贪心+排序)
Andrewid the Android is a galaxy-famous detective. He is now chasing a criminal hiding on the planet ...
- CodeForces - 556C Case of Matryoshkas (水题)
Andrewid the Android is a galaxy-famous detective. He is now investigating the case of vandalism at ...
- jquery查出元素名称
<div onclick='$(this).prop("tagName")'></div> 最后的结果 DIV
- Vue.js 一问一答
Vue.js 一问一答 记录一下在学习 Vue 过程中给自己问的一些问题,持续更新中... Vue.js 的核心是什么? 官网:Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 ...
- Python批量更新模块的方法【面试必学】
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ranchlin 小编的环境为win10+python 3. ...
- js问题记录(一) -- 关于for in, sort(), 及prototype
1.关于for in for in : 遍历对象中的可枚举的属性 例子1:for in 遍历对象的键为String类型,所以调用时用Object[key]形式,而不用Object.key形式 < ...
- Wonder发布v1.1正式版本,新增资产预览、脚本、AssetBundle等
更新说明 本次版本重点增加了脚本组件,并且实现了类似于unity的AssetBundle,支持动态加载场景和资源. 相关链接 官网 Wonder官方QQ群: 106047770 相关资料 Wonder ...
- 一个proc预编译代码时coredump的问题分析
最近有同事在搞编译环境迁移,碰上一个问题让我帮他看一下. 他建了一个新目录,然后把现在的代码拷过去,编译的时候发现有一个文件编译不了一执行就出现core,不知道啥情况. 我进到他的编译环境 ...
- Linux Ipsec
准备环境 1 主机ip:192.168.0.107 2 VPN服务器: ens32:192.168.0.102 ens33:127.16.1.10 环境测试 modprobe ppp-compress ...
- 最新IDEA永久激活
此教程已支持最新2019.2版本 本教程适用Windows.Mac.Ubuntu等所有平台. 激活前准备工作 配置文件修改已经不在bin目录下直接修改,而是通过Idea修改 如果输入code一直弹出来 ...