安装模块部分
pip install xlrd
pip install xlwt
读取常用部分
导入模块
import xlrd
打开Excel文件读取数据
data = xlrd.open_workbook(‘excelFile.xlsx’)
需要修改coding的,普通文件默认即可
data = xlrd.open_workbook(‘excelFile.xlsx’, encoding=’cp1242′)
打印文件sheet数量
data.nsheets
打印文件sheet名字
data.sheet_names()
根据ID获取一个工作表
table = data.sheets()[0]
根据名称获取工作表
table = data.sheet_by_name(u’Sheet2′)
获取整行或整列的值,返回值为数组
table.row_values(i)
table.col_values(i)
获取行数或列数
nrows = table.nrows
ncols = table.ncols
循环行列表数据
for i in range(nrows):
print table.row_values(i)
单元格
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value
使用行列索引
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value
打印单元格值
print cell_A1.value
数据类型(ctype)
0 empty
1 text
2 number
3 date
4 boolean
5 error
简单写入,xf为扩展
table.put_cell(row, col, ctype, value, xf)
table.put_cell(0,1,1,’test’,0)
写入常用部分
创建文件
from xlwt import Workbook
data = Workbook()
如需修改编码
data = Workbook(encoding=’utf-8′)
添加sheet
sheet = data.add_sheet(‘test sheet’)
写入数据
写法一
sheet.write(0, 0, ‘A1’)
写法二
row = sheet.row(1)
row.write(1, ‘B2′)
写入不同格式的数据
row.write(0, u’\xa3’)
row.write(1, ‘text’)
row.write(2, 3.14159)
row.write(3, 15)
row.write(4, 265L)
row.write(5, Decimal(‘3.65’))
row.write(6, date(214,11,5))
row.write(7, datetime(2014,11,5,17,0,1))
row.write(8, time(17,1))
row.write(9, False)
row.write(10, ”, Style.easyxf(‘pattern:pattern solid, fore_colour green;’))
row.write(11, Formula(“$A$!+SUM(‘testsheet’!$A$!:$B$2)”))
写入数据
sheet.flush_row_data()
保存数据
data.save(‘testExcel.xlsx’)
更多高级功能,比如对齐、链接、增加图片等详见pdf文件
测试脚本
#!/bin/python #-*- coding:utf-8 -*- # Filename: # Revision: # Date: 2014-11-5 # Author: simonzhang # web: www.simonzhang.net # Email: simon-zzm@163.com ### END INIT INFO import xlrd from xlwt import Workbook out_data = xlrd.open_workbook('/root/ab.xlsx') in_data = Workbook() # 获取第一张表 out_table = out_data.sheet_by_index(0) # 获取列数 ncols = out_table.ncols # 获取行数 nrows = out_table.nrows # 创建sheet in_table = in_data.add_sheet('test sheet') # 循环写入数据(不判断输出格式,某些情况会有问题。比如时间) for r in range(nrows): for c in range(ncols): in_table.write(r,c,out_table.cell(r,c).value) # 写入文件 in_data.save('ab2.xls')
参考:
http://www.simplistix.co.uk/presentations/python-excel.pdf
http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html
发表评论