前言
一、安装
pip install xlrd
注释:xlrd这个库对于新老版本的表格都支持;
openpyxl 这个库只支持新版本的表格,旧的表格不支持;
二、读取excel
1.读取excel对象
代码如下(示例):
import xlrd
book = xlrd.open_workbook("shuju.xlsx")
print("此时得到的是一个对象:%s"%book)
print(f"获得的表单信息{book.nsheets}")
print(f"获取表单名称为{book.sheet_names()}")
此时得到的book是一个针对整个excel的对象:<xlrd.book.Book object at 0x0000021A2BA862E8>
获得的表单信息为3
获取表单名称为:['Sheet1', 'Sheet2', 'Sheet3'],列表中显示出来
2.读取表单对象
代码如下(示例):
import xlrd
book = xlrd.open_workbook("shuju.xlsx")
# 获取具体表单对象
# 1.根据索引
sheet1 = book.sheet_by_index(0)
print(sheet1)
print(sheet1.name)
# 根据表单名称
sheet2 = book.sheet_by_name('Sheet1')
print(sheet2)
# 获取全部表单对象,放置列表中
print(book.sheets())
<xlrd.sheet.Sheet object at 0x000002391D771898>
Sheet1
<xlrd.sheet.Sheet object at 0x000002391D771898>
[<xlrd.sheet.Sheet object at 0x000002391D771898>, <xlrd.sheet.Sheet object at 0x000002391D7718D0>, <xlrd.sheet.Sheet object at 0x000002391D771908>]
3.根据表单对象读取数据
代码如下(示例):
import xlrd
import xlrd
book = xlrd.open_workbook("shuju.xlsx")
sheet1 = book.sheet_by_index(0)
# 1.读取表单行数,列数,索引,表单名
print(f"表单的名称{sheet1.name}")
print("表单的索引%s"%sheet1.number)
print("表单的行数{0}".format(sheet1.nrows))
print("表单的列数{}".format(sheet1.ncols))
表单的名称Sheet1
表单的索引0
表单的行数11
表单的行数9
4.读取单元格内容
代码如下(示例):
import xlrd
book = xlrd.open_workbook("shuju.xlsx")
sheet1 = book.sheet_by_index(0)
# 单据行和列取出对应单元格的信息,表格从0开始计数
A1 = sheet1.cell_value(rowx=0,colx=0)
print(A1)
# 获取整行数据
A_row = sheet1.row_values(rowx=2)
print(A_row)
# 获取整列数据,默认整行整列都是从0开始
A_col = sheet1.col_values(colx=1)
print(A_col)
# 获取整列=1从第二行3开始
A_col2 = sheet1.col_values(colx=1,start_rowx=2)
print(A_col2)
# 获取从第3行开始,2-3两列的数据(实际不包含3)
A_col3 = sheet1.row_values(2,1,3)
print(A_col3)
# 获取第二列,3-11行数据(包含11)
A_row2 = sheet1.col_values(1,2,12)
print(A_row2)
#获取单元格值类型和内容
B1 = sheet1.row_slice(2,1,12)
print(B1)
# 获取单元格数据类型
B2 = sheet1.row_types(2,1,12)
print(B2)
地址
['http://60.205.82.64:80/v1/fin/lyzd/prepay_trial', 'A1', 'str', '否', '位数的校验 20', '', '', '', '']
['接口入参', '', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9']
['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9']
['A1', 'str']
['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9']
[text:'A1', text:'str', text:'否', text:'位数的校验 20', empty:'', empty:'', empty:'', empty:'']
array('B', [1, 1, 1, 1, 0, 0, 0, 0])