读取 Excel 文件
- from mmap import mmap,ACCESS_READ
- # mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。
- # ACCESS_READ 读文件
- from xlrd import open_workbook
- # 通过open_workbook返回的xlrd.Book对象包含了所有对工作簿要的事情,能被用于在工作簿中取得独立的sheet。
- print (open_workbook('simple.xls'))
- with open('simple.xls','rb') as f:
- print (open_workbook(
- file_contents=mmap(f.fileno(),0,access=ACCESS_READ)
- ))
- aString = open('simple.xls','rb').read()
- print (open_workbook(file_contents=aString))
读取
结合一段简单的代码来看:
测试文件:
输出结果:
常用的方法:
写入
还是看代码:
生成文件:
常用的方法:
修改
很遗憾,并没有直接修改 xls 文件的方法。通常的做法是,读取出文件,复制一份数据,对其进行修改,再保存。
在复制时,需要用到 xlutils 中的方法。
修改后文件:
特别要注意的是,选取读取表单时,要使用 sheet_by_index,而在选取写入表单时,则要用 get_sheet。不要问我为什么,我也很想知道这么设定的用意何在……
时间转换
如果表单中有时间格式的数据,通过处理之后,你会发现时间数据出了差错。
输出单元格内容:
因为这里 xldate 有自己的格式定义。如果要使用正确的格式,必须转换:
date 是对应单元格的数据,book 是打开的文件对象。
另外,在打开文件时,加上参数 formatting_info=True,可以保证在时间数据在 copy 时保持原样。
写入时间数据,则可通过此方法创建 excel 的时间对象:
或者通过 xlwt.easyxf 指定时间格式:
具体细节及更多功能这里不展开说明。
以上便是 Python 操作 Excel 文件的一些基本方法。实际使用过程中遇到问题或者需要了解更多功能,永远记住两个词:
RTFM、STFW :)
来源: