python-读取excel(xlrd)
Posted 忆梦,惊梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-读取excel(xlrd)相关的知识,希望对你有一定的参考价值。
一、安装xlrd模块
二、常用方法
1、导入模块
import xlrd
2、打开文件
x1 = xlrd.open_workbook("testCase.xlsx")
3、获取sheet
print(\'sheet_names:\', x1.sheet_names()) # 获取所有sheet名字 print(\'sheet_number:\', x1.nsheets) # 获取sheet数量 print(\'sheet_object:\', x1.sheets()) # 获取所有sheet对象 print(\'By_name:\', x1.sheet_by_name("case")) # 通过sheet名查找 print(\'By_index:\', x1.sheet_by_index(0)) # 通过索引查找
输出:
sheet_names: [\'case\'] sheet_number: 1 sheet_object: [<xlrd.sheet.Sheet object at 0x10a244a58>] By_name: <xlrd.sheet.Sheet object at 0x10a244a58> By_index: <xlrd.sheet.Sheet object at 0x10a244a58>
4、获取sheet的汇总数据
sheet1 = x1.sheet_by_name("case") print("sheet name:", sheet1.name) # get sheet name print("row num:", sheet1.nrows) # get sheet all rows number print("col num:", sheet1.ncols) # get sheet all columns number
输出:
sheet name: case row num: 6 col num: 4
5、单元格批量读取
行操作:
print(sheet1.row_values(0)) # 获取第一行所有内容,合并单元格,首行显示值,其它为空。 print(sheet1.row(0)) # 获取单元格值类型和内容 print(sheet1.row_types(0)) # 获取单元格数据类型
输出:
[\'用户ID\', \'积分\', \'下发原因\', \'部门\'] [text:\'用户ID\', text:\'积分\', text:\'下发原因\', text:\'部门\'] array(\'B\', [1, 1, 1, 1])
列操作:
print(sheet1.row_values(0, 1, 3)) # 取第1行,第1~3列(不含第3列) print(sheet1.col_values(0, 0, 5)) # 取第1列,第0~5行(不含第5行) print(sheet1.row_slice(2, 0, 2)) # 获取单元格值类型和内容,同sheet1.row(0) print(sheet1.row_types(1, 0, 2)) # 获取单元格数据类型
输出:
[\'积分\', \'下发原因\'] [\'用户ID\', \'1611504\', \'1611504\', \'1611504\', \'1611504\'] [text:\'1611504\', text:\'0\'] array(\'B\', [1, 1])
6、特定单元格读取
# 取值 print(sheet1.cell_value(1, 2)) print(sheet1.cell(1, 2).value) print(sheet1.row(1)[2].value) #取类型 print(sheet1.cell(1, 2).ctype) print(sheet1.cell_type(1, 2)) print(sheet1.row(1)[2].ctype)
输出:
返现
返现
返现
1
1
1
7、(0,0)转换A1
print(xlrd.cellname(0, 0)) # (0,0)转换成A1 print(xlrd.cellnameabs(0, 0)) # (0,0)转换成$A$1 print(xlrd.colname(30)) # 把列由数字转换为字母表示
输出:
A1 $A$1 AE
8、数据类型:
- 空:0
- 字符串:1
- 数字:2
- 日期:3
- 布尔:4
- error:5
# 导入模块 import xlrd # 读取到excel文件 data = xlrd.open_workbook("student.xlsx") # 获取列表 table = data.sheet_by_index(0) # 获取所有的行数 nrows = table.nrows # 获取所有的列数 ncols = table.ncols # 获取第一行的数据 first_row_name_list = table.row_values(0) print(first_row_name_list) # 定义一个列表保存所有行的数据 info_list = [] # 遍历所有行 for rownum in range(1, nrows): # 获取 row = table.row_values(rownum) # 如果row有数据 if row: info_list.append(row) print(info_list)
完
以上是关于python-读取excel(xlrd)的主要内容,如果未能解决你的问题,请参考以下文章