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的更多相关文章

  1. 一个使用xlwings操作excel数据优化60倍处理效率的案例

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿在将自己的博文数据(包括url地址.标题和阅读数量)从博客中获取后,使用xlwings保存到excel对象时发现,不同的处理方法性能相差非常大. ...

  2. Python学习随笔:使用xlwings设置和操作excel多行多列数据以及设置数据字体颜色填充色对齐方式的方法

    ☞ ░ 前往老猿Python博文目录 ░ 在前面老猿的文章中,<Python学习随笔:使用xlwings读取和操作Excel文件>.<Python学习随笔:使用xlwings读取和操 ...

  3. Python openpyxl、pandas操作Excel方法简介与具体实例

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  4. 利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

  5. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  6. C#通过NPOI操作Excel

    参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-post.html http://www.yuanjiaocheng.net/w ...

  7. POI操作Excel

    POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...

  8. NPOI操作EXCEL(六)——矩阵类表头EXCEL模板的解析

    哈哈~~~很高兴还活着.总算加班加点的把最后一类EXCEL模板的解析做完了... 前面几篇文章介绍了博主最近项目中对于复杂excel表头的解析,写得不好,感谢园友们的支持~~~ 今天再简单讲诉一下另一 ...

  9. VB操作EXCEL文件

    用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel. ...

随机推荐

  1. 3个Spring Boot项目调优的方式

    前言 作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行.   一.修改配置文件 关于修改配置文件applicati ...

  2. Java堆的结构是什么样子的?什么是堆中的永久代(Perm Gen space)?

    JVM的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存.它在JVM启动的时候被创建.对象所占的堆内存是由自动内存管理系统也就是垃圾收集器回收. 堆内存是由存活和死亡的对象组成的.存活的对象是应 ...

  3. [answerer的算法课堂]简单描述4种排序算法(C语言实现)

    [answerer的算法课堂]简单描述4种排序算法(C语言实现) 这是我第一次写文章,想要记录自己的学习生活,写得不好请包涵or指导,本来想一口气写好多种,后来发现,写太多的话反而可读性不强,而且,我 ...

  4. Django-Model 大全

      ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 <-------> 类实例对象 创建表(建立模型) 实例:我们来假定 ...

  5. Spring与Shiro整合 静态注解授权

    Spring与Shiro整合 静态注解授权 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 使用Shiro的种类 首先,Shiro的授权方式共有三种: 1.编程式授权(不推荐) 2. ...

  6. Samba CVE-2017-7494验证实验

    漏洞简介 Samba是在Linux和UNIX系统上实现SMB协议的一个软件,不少IoT设备也使用了Samba.2017年5月24日Samba发布了4.6.4版本,修复了一个严重的远程代码执行漏洞,漏洞 ...

  7. maven的下载、安装及配置

    一.下载maven 1. maven的下载路径 (1)Apache官网:https://maven.apache.org (2)https://pan.baidu.com/s/1Yvv44ICGSxG ...

  8. Leetcode547: Friend Circles 朋友圈问题

    问题描述 在一个班级里有N个同学, 有些同学是朋友,有些不是.他们之间的友谊是可以传递的比如A和B是朋友,B和C是朋友,那么A和C也是朋友.我们定义 friend circle为由直接或者间接都是朋友 ...

  9. SQLserver还原失败(数据库正在使用,无法获得对数据库的独占访问权)

    问题描述: Sql server还原失败(数据库正在使用,无法获得对数据库的独占访问权) 数据库还原的时候还有其他进程连在上面,导致无法获得独占造成的. 这个问题的原因在于有用户连接了当前要做还原的数 ...

  10. WebShell代码分析溯源(七)

    WebShell代码分析溯源(七) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(ba ...