xlrd解析excel

安装xlrd(2.x版本不支持打开xlsx)

下载指定版本:pip install xlrd==1.2.0

打开文件

data = xlrd.open_workbook("data.xlsx")

获取sheet

  • 获取所有sheet名字:data.sheet_names()
  • 获取sheet数量:data.nsheets
  • 获取所有sheet对象:data.sheets()
  • 通过sheet名查找:data.sheet_by_name("test”)
  • 通过索引查找:data.sheet_by_index(0)
复制代码
# -*- coding:utf-8 -*-

from pathlib import Path
import os

filename = "demo.xlsx"
filePath = Path.cwd().parent.joinpath(filename)


# 1、打开文件
data = xlrd.open_workbook(filePath)

# 2、获取sheet对象
print 'sheet_names:', data.sheet_names()  # 获取所有sheet名字
print 'sheet_number:', data.nsheets        # 获取sheet数量
print 'sheet_object:', data.sheets()       # 获取所有sheet对象
print 'By_name:', data.sheet_by_name("test")  # 通过sheet名查找
print 'By_index:', data.sheet_by_index(3)  # 通过索引查找
复制代码

获取sheet的汇总数据

  • 获取sheet名:sheet1.name
  • 获取总行数:sheet1.nrows
  • 获取总列数:sheet1.ncols
# 获取sheet的汇总数据
sheet1 = x1.sheet_by_name("plan")
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

单元格批量读取

 a)行操作:
  • sheet1.row_values(0)  # 获取第一行所有内容,合并单元格,首行显示值,其它为空。
  • sheet1.row(0)           # 获取单元格值类型和内容
  • sheet1.row_types(0)   # 获取单元格数据类型
  • x1 = xlrd.open_workbook(filePath)
    sheet1 = x1.sheet_by_name("plan")
    
    # 单元格批量读取
    print sheet1.row_values(0)  # 获取第一行所有内容,合并单元格,首行显示值,其它为空。
    print sheet1.row(0)         # 获取单元格值类型和内容
    print sheet1.row_types(0)   # 获取单元格数据类型

     

b) 表操作

  • 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)   # 获取单元格数据类型
  • x1 = xlrd.open_workbook(filePath)
    sheet1 = x1.sheet_by_name("plan")
    
    # 列操作
    print sheet1.row_values(0, 6, 10)   # 取第1行,第6~10列(不含第10表)
    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)     # 获取单元格数据类型

     

特定单元格读取

 a) 获取单元格值:
  • sheet1.cell_value(1, 2)
  • sheet1.cell(1, 2).value
  • sheet1.row(1)[2].value 
b) 获取单元格类型:
  • sheet1.cell(1, 2).ctype
  • sheet1.cell_type(1, 2)
  • sheet1.row(1)[2].ctype
  • 复制代码
    x1 = xlrd.open_workbook(filePath)
    sheet1 = x1.sheet_by_name("plan")
    
    # 特定单元格读取
    # 取值
    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
    复制代码

     

(0,0)转换A1

  • xlrd.cellname(0, 0)   # (0,0)转换成A1
  • xlrd.cellnameabs(0, 0) # (0,0)转换成$A$1
  • xlrd.colname(30)  # 把列由数字转换为字母表示
  • x1 = xlrd.open_workbook(filePath)
    sheet1 = x1.sheet_by_name("plan")
    
    # (0,0)转换成A1
    print xlrd.cellname(0, 0)   # (0,0)转换成A1
    print xlrd.cellnameabs(0, 0) # (0,0)转换成$A$1
    print xlrd.colname(30)  # 把列由数字转换为字母表示

     

数据类型

  • 空:0
  • 字符串:1
  • 数字:2
  • 日期:3
  • 布尔:4
  • error:5
posted @   xaom  阅读(86)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示