【Python】xlrd实现excel表格的读入

上篇博客介绍了xlwt写入表格的基本用法以及工作簿样式的设置,对于python使用excel,读入表格也是必不可少的操作。

模块导入,打开表格

import xlrd 

workbook = xlrd.open_workbook(r'C:\Users\znjt\Desktop\loss\G72A-71.900-沥青破损汇总表-20201110100535.xls') 
1. 对sheet的操作
# 获取工作簿中sheet的数量
sheets_n = workbook.nsheets
# 获取工作簿中所有sheet表对象
sheets = workbook.sheets()
# 获取工作簿所有sheet表对象名称
sheets_name = workbook.sheet_names()

# 按索引获取sheet对象
sheet_1 = work_book.sheet_by_index(0)

# 按sheet表名称获取sheet对象,名称分大小写
sheet_2 = work_book.sheet_by_name('Sheet2')

2. 对sheet中单元格的操作
# 获得单元格数据类型:单元格值
cell_ij = sheet_1.cell(i,j)
# 仅单元格值
cell_ij_value = sheet_1.cell(i,j).value
cell_ij_value = sheet_1.cell_value(i,j)
# 仅单元格类型
cell_ij_type = sheet_1.cell(i,j).type
cell_ij_value = sheet_1.cell_type(i,j)
'''
单元格类型索引:
XL_CELL_EMPTY: 'empty',       # 0
XL_CELL_TEXT: 'text',         # 1
XL_CELL_NUMBER: 'number',	  # 2
XL_CELL_DATE: 'xldate',       # 3
XL_CELL_BOOLEAN: 'bool',      # 4
XL_CELL_ERROR: 'error',       # 5
XL_CELL_BLANK: 'blank',       # 6
'''
3. sheet表行(row)对象及属性:
# 获取sheet表对象有效行数
row_sum = sheet_1.nrows

# 获取sheet表某一行长度
row_len = sheet_1.row_len(0)

# 获取sheet表某一行所有数据类型及值
row_0 = sheet_1.row(0)
# 获得sheet对象所有行对象生成器
rows = sheet_1.get_rows()

# 获取某一行对象数据类型、值,可指定开始结束列
row_0_s = sheet_1.row_slice(0,0,1)
"def row_slice(self, rowx, start_colx=0, end_colx=None):"

# 获取sheet表对象某一行数据类型,返回一个数组对象
row_0_type = sheet_1.row_types(0)
"def row_types(self, rowx, start_colx=0, end_colx=None):"

# 获取sheet表对象某一行数据值
row_0_value = sheet_1.row_values(0)
"def row_values(self, rowx, start_colx=0, end_colx=None):"

4. sheet表列(col)对象及属性:
# 获取sheet表有效列数
col_sum = sheet_1.ncols

# 获取列对象
col_0 = sheet_1.col(0)
"def col_slice(self, colx, start_rowx=0, end_rowx=None):"

# 获取某一列的值
col_0_value = sheet_1.col_values(0)
"def col_values(self, colx, start_rowx=0, end_rowx=None):"

# 获取某一列的数据类型
col_0_type = sheet_1.col_types(0)
"def col_types(self, colx, start_rowx=0, end_rowx=None):"

5. 读取sheet对象中所有数据
# 按行读取
data_row = []
for row in range(sheet_1.nrows):
    data_row.append(sheet_1.row_values(row))
# 按列读取
data_col = [sheet_1.col_values(i) for i in range(sheet_1.ncols)]
print(data_col)
# 按行读取test01.xls 所有 sheet 表数据
all_data = {}
for i,sheet_obj in enumerate(work_book.sheets()):
    all_data[i] = [sheet_obj.row_values(row)
                   for row in range(sheet_obj.nrows)]

xlrd的用法相对于xlwt来说相对简单,以上的用法足够使用,当然读者想要实现更见复杂的功能就要自己定义函数来实现了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值