最近处理一些Excel表格,遇到从大量表格的同一位置提取数值的情况,手动复制效率极低,还容易出现纰漏,所以试着用Python中xlrd与xlwt模块实现了一下,接下来就简单分享一下用xlrd,xlwt来实现Excel读写操作的方法。
Ecxel的读取(xlrd)
首先通过pip安装xlrd:
>> pip install xlrd
或手动安装(https://pypi.python.org/pypi/xlrd)
xlrd的基本操作
#导入模块
import xlrd
#打开一个工作簿
data = xlrd.open_workbook('D:/demo.xlsx')
获取sheet相关的操作
#获取sheet
table_list = data.sheets() #获取sheet对象的列表
table_name = data.sheet_names() #获取sheet name的列表
table = data.sheets()[i] #按索引获取sheet对象
table = data.sheet_by_index(i) #通过检索获取第i个sheet对象,作用和data.sheets()[i]相同
table = data.sheet_by_name('sheet2') #通过name获取名称为“sheet2”的对象
#返回sheet的名称、最大行数、最大列数
name = table.name()
nrows = table.nrows()
ncols = table.ncols()
获取表格中值的相关操作
#获取整行、整列数据(返回为列表)
rows = table.row_values(i) #返回第i行值的列表
cols = table.col_values(j) #返回第j列值的列表
#获取单元格(i,j)的值(i,j均从0开始计数)
table.cell(i,j).value
table.cell_value(i,j)
table.row(i)[j].value
table.col(j)[i].value
#获取单元格中值的属性
table.cell(i,j).ctype
#返回值如下
ctype:0 empty, 1 string, 2 number, 3 date, 4 boolean, 5 error
#日期读取方法
datetuple = xlrd.xldate_as_tuple(table.cell(i,j).value,0) #转化为元组
datetuple = xlrd.xldate_as_tuple(table.cell(i,j).value,1) #转化为datetime对象
一个小例子:
下面来试着读取这份表中的数据
图1. 成绩单

最低0.47元/天 解锁文章
4167

被折叠的 条评论
为什么被折叠?



