从excel文件中导入数据
1、操作步骤
2、工作原理
3、代码实现
1、操作步骤
(1)打开文件的工作簿
(2)根据名称找到工作表。根据行数(nrows)和列数(ncols)读取单元格的内容
(3)当发生错误时抛出异常
2、工作原理
(1)xlrd模块使用的简单对象模型。在最上层是一个包含一个或多个工作表(xlrd.sheet.Sheet)的工作簿(python类xlrd.book.Book)。每个工作表有一个单元格对象(xlrd.sheet.Cell),我们从单元格中将值读取出来。
(2)通过调用open.workbook()方法,我们从文件中加载了一个工作簿,并返回一个xlrd.book实例。Book实例包含了一个工作簿的所有信息,如工作表单。通过调用sheet_by_name()方法。sheets()方法返回一个xlrd.sheet.Sheet实例的列表。xlrd.sheet.Sheet类有行和列属性,通过这些属性来指定循环的范围,并通过调用cell()方法来访问工作表中的每个特定的单元格。
(3)注意:日期是以浮点数而不是以某个日期类型存储的。xlrd模块有能力检查数据的值,并推断出数据值实际上是否为一个日期。如果数字的字符串像日期,xlrd模块将返回xlrd.XLCELL_DATA作为单元格类型。
python读取excel中单元格的内容返回的有5种类型:
cell.ctype
0——empty
1——string
2——number
3——date
4——boolean
5——error
3、代码实现
import xlrd
import sys
from datetime import datetime
from xlrd import open_workbook,xldate_as_tuple
filename = 'playoff.xls'
try:
book = xlrd.open_workbook(filename)
sheet = book.sheet_by_name('playoff') # 表名为:playoff
cell = sheet.cell(1,1)
print(cell)
print(cell.value)
print(cell.ctype) # 检查单元格类型
if cell.ctype == xlrd.XL_CELL_DATE:
date_value = xldate_as_tuple(cell.value,book.datemode)
print(datetime(*date_value))
dataset = []
for r in range(sheet.nrows): # 遍历表的每一行
col = []
for c in range(sheet.ncols): # 遍历表的每一列
col.append(sheet.cell(r,c).value) # 遍历表的单元格
dataset.append(col)
print(dataset)
except xlrd.XLRDError as e:
print('Read excel error:%s' % e)
sys.exit(1)