首页 > 代码库 > Python学习笔记16—电子表格
Python学习笔记16—电子表格
openpyl 模块是解决 Microsoft Excel 2007/2010 之类版本中扩展名是 Excel 2010 xlsx/xlsm/xltx/xltm 的文件的读写的第三方库。
安装
pip install openpyxl
workbook 和 sheet的建立
引入模块
>>> from openpyxl import Workbook
建立工作薄
>>> wb = Workbook()
建立sheet
>>> ws = wb.active
另外还可以在这个sheet后面追加
>>> ws1 = wb.create_sheet()
给sheet重命名
>>> ws.title = "Python"
此时,可以使用下面的方式从工作簿对象中得到 sheet
>>> ws01 = wb[‘Python‘] #sheet 和工作簿的关系,类似键值对的关系>>> ws is ws01True
显示所有的sheet
>>> print wb.get_sheet_names()[u‘Python‘, ‘Sheet1‘, ‘Sheet2‘]
也可以用循环语句,把所有的 sheet 名字打印出来。
>>> for sh in wb:... print sh.title... PythonSheet1Sheet2
cell
为了能够清楚理解填数据的过程,将电子表中约定的名称以下图方式说明:
对于 sheet,其中的 cell 是它的下级单位。所以,要得到某个 cell,可以这样:
>>> b4 = ws[‘B4‘]
这样
>>> a5 = ws.cell("A5")
还有这样
>>> a2 = ws.cell(row = 2, column = 1)
如果要给 B4 添加数据,可以这么做:
>>> ws[‘B4‘] = 4444
因为 b4 引用了一个 cell 对象,所以可以利用这个对象的属性来查看其值:
>>> b4.value4444
一次创建多个cell
>>> cells = ws["A1":"C3"]>>> tuple(ws.iter_rows("A1:C3")) #查看((<Cell Python.A1>, <Cell Python.B1>, <Cell Python.C1>), (<Cell Python.A2>, <Cell Python.B2>, <Cell Python.C2>), (<Cell Python.A3>, <Cell Python.B3>, <Cell Python.C3>))
还可以用下面的循环方法,一个一个地读到每个cell 对象:
IndentationError: expected an indented block>>> for row in ws.iter_rows("A1:C3"):... for cell in row:... print cell... <Cell Python.A1><Cell Python.B1><Cell Python.C1><Cell Python.A2><Cell Python.B2><Cell Python.C2><Cell Python.A3><Cell Python.B3><Cell Python.C3>
给这些cell赋值
>>> i = 1>>> for row in ws.rows:... for cell in row:... cell.value = i... i += 1...
查看添加的数据
>>> for col in ws.columns:... for cell in col:... print cell.value... 147101325811143691215
保存
>>> wb.save("demo.xlsx")
查看工作薄
读取已有的电子表格
>>> from openpyxl import load_workbook>>> wb2 = load_workbook("demo.xlsx")>>> print wb2.get_sheet_names()[u‘Python‘, u‘Sheet1‘, u‘Sheet2‘]>>> ws_wb2 = wb2["Python"]>>> for row in ws_wb2.rows:... for cell in row:... print cell.value... 123456789101112131415
其它第三方库
针对电子表格的第三方库,除了上面这个 openpyxl 之外,还有别的,列出几个,供参考,使用方法大同小异。
• xlsxwriter:针对 Excel 2010 格式,如 .xlsx,官方网站:https://xlsxwriter.readthedocs.org/,这个官方文档写的图文并茂。非常好读。
下面两个用来处理 .xls 格式的电子表表格。
• xlrd:网络文件:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html?p=4966
• xlwt:网络文件:http://xlwt.readthedocs.org/en/latest/
Python学习笔记16—电子表格