微软官方Excel管理Python模块
Python部落组织翻译,禁止转载,欢迎转发
小编说:用程序读写Excel是很多公司业务流程中的一个重要环节。目前大多数公司使用的读写Excel的Python模块都来源于第三方,今天,我们介绍一下微软官方提供的Excel管理Python模块:Pyvot。
安装方式
前提是预先安装有Python for Windows extensions (pywin32)和Office 2010。
安装命令是:easy_install pyvot
导入方式
import xl
把Python内容导入到Excel中
>>> xl.Workbook() # 创建空的Excel表单,状态为active
>>> a = range(1,10) # 一个Python列表
>>> a[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> xl.view(a) # 将Python列表展示在Excel中
Python列表被拷贝进了Excel。
Excel内容转成Python对象
从Excel中获取数据需要xl.Range对象,这个对象代表要操作的单元格。xl.view函数返回选择的存储数据的单元格的范围。
>>> r = xl.view(range(1,10))
>>> r<ColumnVector range object for $A$2:$A$1048576 (visible only)
>>>> r.get()[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
>>> sum(r) # ranges are iterable45.0
需要注意的是,view函数实际上选中了整个A列,但是Range.get假设我们只需要里面有用的数据。
现在我们可以修改Excel中的数据,然后重新获取数据回来。例如我们手动在Excel中删除一些行,把Excel中的数据改为这样:
>>> r.get() # get updated values
[1.0, 20.0, 8.0, 9.0]
当前的选择范围仍旧是一个Range对象,这允许我们在Excel中筛选我们感兴趣的数据。
>>> xl.selected_range().get()
8.0
使用Range对象的注意事项:
它排除了表头行(get("ColumnName").get()不包含"ColumnName")
它只从被使用了的范围里面进行选择。相对应的,原生的Excel COM API有一个非常令人沮丧的问题,就是如果你选择一列,它返回一百万个空的单元格给你。
Workbook.Range方法相比之下只处理A1这种风格的引用,和命名范围。
这只是一个简要的介绍,更详细的细节您可以阅读英文原文,获取更多的信息。
英文原文:https://pythonhosted.org/Pyvot/tutorial.html
译者:诗书塞外
查看评论 回复