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)的主要内容,如果未能解决你的问题,请参考以下文章

xlrd模块

[Python]xlrd 读取excel 日期类型2种方式

Python 调用xlrd读取excel的时候报错?

python使用xlrd模块读取Excel

python(读取excel操作-xlrd模块)

[Python]xlrd 读取excel 日期类型2种方式