ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

xlrd解析excel

2022-03-30 18:33:20  阅读:196  来源: 互联网

标签:sheet 单元格 excel sheet1 print xlrd 解析 row


安装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

标签:sheet,单元格,excel,sheet1,print,xlrd,解析,row
来源: https://www.cnblogs.com/xaom/p/16078411.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有