学习code 1
# coding: utf-8
import xlrd
# 写入excel路径
excel_path = r'D:\zhangzeqian3\Downloads\hhh.xls'
# 打开Excel
data = xlrd.open_workbook(excel_path)
# 查看Excel中的sheet名称
print (data.sheet_names())
# 通过索引或表名获取一个工作表:一个list
table = data.sheets()[0]
table1 = data.sheet_by_index(0) #选择一个工作表
table2 = data.sheet_by_name(u'地点')
print (table, table1, table2)
# 获取行数和列数
nrows = table.nrows
ncols = table.ncols
print (nrows,ncols)
# 获取整行和整列的值
print (table.row_values(1))
print (table.col_values(2))
# 循环行,得到索引的列表
for rn in range(table.nrows):
print (table.row_values(rn)) #将表完整打印出来
# 直接输单元格坐标,得到某一项值
cell_A1 = table.cell(0, 0).value #得到具体某项值
cell_A2 = table.cell(1, 0).value
print (cell_A1, cell_A2)
# 分别使用行列索引,找到某项值
cell_A3 = table.row(0)[0].value #得到具体某项值
cell_A4 = table.col(1)[1].value
print (cell_A3, cell_A4)
学习code 2
import xlrd
book = xlrd.open_workbook("myfile.xls")
print("当前excel文件工作表数量为 {0}".format(book.nsheets))
print("工作表名字为: {0}".format(book.sheet_names()))
# 获取第一张工作表
sh = book.sheet_by_index(0)
# 获取表的数量
print(book.nsheets)
# 当前工作表名, 总行数 总列数
print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))
# 单元 d30 数据为
print("Cell D30 is {0}".format(sh.cell_value(rowx=29, colx=3)))
# 获取所有行数据
for rx in range(sh.nrows):
# rx 行
print(sh.row(rx))
>>> [text:'Camille Richardson', text:'2316 EVIAN CT', empty:'', empty:'', text:'DISTRICT HEIGHTS', text:'MD', text:'20747-1153', text:'US']
# 获取所有行数据
for rx in range(sh.nrows):
print(sh.row_values(rx))
获取book中一个工作表
table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取
table = data.sheet_by_name(sheet_name)#通过名称获取
以上三个函数都会返回一个xlrd.sheet.Sheet()对象
names = data.sheet_names() #返回book中所有工作表的名字
data.sheet_loaded(sheet_name or indx) # 检查某个sheet是否导入完毕
获取工作表名称、行数、列数
工作表名字:table.name
表行数:table.nrows
表列数:table.ncols
获取所有sheet名字:book.sheet_names()
获取sheet数量:book.nsheets
获取所有sheet对象:book.sheets()
通过sheet名查找:book.sheet_by_name("demo”)
通过索引查找:book.sheet_by_index(0)
获取sheet名:sheet1.name
获取总行数:sheet1.nrows
获取总列数:sheet1.ncols
行的操作
nrows = table.nrows #获取该sheet中的有效行数
table.row(rowx) #返回由该行中所有的单元格对象组成的列表
table.row_slice(rowx) #返回由该列中所有的单元格对象组成的列表
table.row_types(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据类型组成的列表
table.row_values(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据组成的列表
table.row_len(rowx) #返回该列的有效单元格长度
sheet1.row_values(0) # 获取第一行所有内容,合并单元格,首行显示值,其它为空。
sheet1.row(0) # 获取单元格值类型和内容
sheet1.row_types(0) # 获取单元格数据类型
列的操作
ncols = table.ncols #获取列表的有效列数
table.col(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表
table.col_slice(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表
table.col_types(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据类型组成的列表
table.col_values(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据组成的列表
sheet1.row_values(0, 6, 10) # 取第1行,第6~10列(不含第10表)
sheet1.col_values(0, 0, 5) # 取第1列,第0~5行(不含第5行)
sheet1.row_slice(2, 0, 2) # 获取单元格值类型和内容
sheet1.row_types(1, 0, 2) # 获取单元格数据类型
单元格的操作
table.cell(rowx,colx) #返回单元格对象
table.cell_type(rowx,colx) #返回单元格中的数据类型
table.cell_value(rowx,colx) #返回单元格中的数据
获取单元格值:
sheet1.cell_value(1, 2)
sheet1.cell(1, 2).value
sheet1.row(1)[2].value
获取单元格类型:
sheet1.cell(1, 2).ctype
sheet1.cell_type(1, 2)
sheet1.row(1)[2].ctype
常用函数
# 打开excel表,是否带格式
book = xlrd.open_workbook("地址信息.xlsx",formatting_info=True/False)
# 获取excel中所有的sheet
book.sheets()
# 打开具体sheet工作方法1
sheet = book.sheet_by_index(索引位置)
# 打开具体sheet工作方法2
sheet = book.sheet_by_nam(工作表名字)
# 获取单元格的值1
sheet.cell_value(rowx=行, colx=列)
# 获取单元格的值2
sheet.cell(行,列).value
# 获取单元格的值3
sheet.cell(行)[列].value
# 获取第4行的内容,以列表形式表示
row_4 = table.row_values(3)
# 获取所有工作表的名字
book.sheet_names()
# 获取工作表的数量
book.nsheets
# 获取工作表的所有行数
sheet.nrows
# 获取工作表的所有列数
sheet.ncols