python处理excel(xlrd库)

本文详细介绍了Python中用于读取Excel数据的xlrd库的使用方法,包括通过名称和索引获取工作表,操作行和列数据等基本操作。示例代码演示了如何打开文件、获取行数和列数、读取特定行和列的数据,为处理Excel文件提供了基础指南。
摘要由CSDN通过智能技术生成

xlrd库主要用于读取excel(支持 xlsx和xls 格式)数据,xlwt是写excel的库,本章主要讲解xlrd的部分操作。

安装库

安装库:pip install xlrd
导入库:import xlrd

使用

工作表

方法说明备注
xlrd.open_workbook(filename[, logfile,verbosity, …])根据filename打开指定文件
xlrd.sheet_by_name( sheet_name)通过sheet名称获取对应工作表返回xlrd.sheet.Sheet对象
xlrd.sheet_by_index(index)通过索引获取对应顺序的sheet对象下标从0开始,返回xlrd.sheet.Sheet对象
xlrd.sheets()获取全部的sheet返回的是列表,列表每个元素都是 xlrd.sheet.Sheet 对象
# -*- coding: utf-8 -*-

import xlrd

# 根据filename打开指定文件
work_book = xlrd.open_workbook("E:\\work\\py_pratice\\test.xlsx")

# 通过sheet名称获取对应sheet的对象
employee_infos = work_book.sheet_by_name("员工信息")  # 获取“员工信息”表
print(employee_infos)

# 通过索引获取对应顺序的sheet对象(从0开始算)
product_prices = work_book.sheet_by_index(0)    # 获取第一个sheet表数据
print(product_prices)

# 获取全部的sheet(返回的是列表,列表每个元素都是 xlrd.sheet.Sheet 对象)
all_tables = work_book.sheets()
print(all_tables)

all_tables_name = work_book.sheet_names()
print(all_tables_name)

运行结果:

<xlrd.sheet.Sheet object at 0x000001981080EB70>
<xlrd.sheet.Sheet object at 0x000001981080EB38>
[<xlrd.sheet.Sheet object at 0x000001981080EB38>, <xlrd.sheet.Sheet object at 0x000001981080EB70>]
[‘商品价格’, ‘员工信息’]

行操作

方法说明备注
Sheet.nrows获取该sheet中的有效行数
Sheet.row(rowx)获取sheet中的第rowx行数据行数rowx从0开始算起
Sheet.row_slice( rowx, start_colx=0, end_colx=None)获取sheet中rowx行指定列(开始列start_colx,结束列end_colx前)的数据(包含了数据类型)行数rowx从0开始算起,不包含结束列end_colx
Sheet.row_values(rowx, start_colx=0, end_colx=None)获取sheet中rowx行指定列(开始列start_colx,结束列end_colx前)的数据(不包含数据类型)行数rowx从0开始算起,不包含结束列end_colx
Sheet.row_len(rowx)获取第rowx行的有效单元格长度行数rowx从0开始算起
# -*- coding: utf-8 -*-

import xlrd

# 根据filename打开指定文件
work_book = xlrd.open_workbook("E:\\work\\py_pratice\\test.xlsx")

# 通过sheet名称获取对应sheet的对象
employee_infos = work_book.sheet_by_name("员工信息")  # 获取“员工信息”表

# 获取该sheet中的有效行数
nrows = employee_infos.nrows
print(nrows)

# 获取sheet中的某行数据
data = employee_infos.row(2)
print(data)

# 获取sheet中某行指定列的数据(包含了数据类型)
data2 = employee_infos.row_slice(2, 1, 4)
print(data2)

# 获取sheet中某行指定列的数据(不包含数据类型)
data3 = employee_infos.row_values(2, 1, 4)
print(data3)

# 获取某行的有效单元格长度
data4 = employee_infos.row_len(2)
print(data4)

运行结果:

6
[text:‘1002’, text:‘李四’, text:‘男’, number:22.0, text:‘良好’]
[text:‘李四’, text:‘男’, number:22.0]
[‘李四’, ‘男’, 22.0]
5

列操作

方法说明备注
Sheet.ncols获取某sheet中的有效列数
Sheet.col_slice(colx, start_rowx=0, end_rowx=None)获取sheet中第colx列从start_rowx行到end_rowx行的数据(包含了数据类型)列数colx从0开始算起,不包含结束行end_rowx
Sheet.col_values(self, colx, start_rowx=0, end_rowx=None)获取sheet中第colx列从start_rowx行到end_rowx行的数据(不包含数据类型)列数colx从0开始算起,不包含结束行end_rowx
# -*- coding: utf-8 -*-

import xlrd

# 根据filename打开指定文件
work_book = xlrd.open_workbook("E:\\work\\py_pratice\\test.xlsx")

# 通过sheet名称获取对应sheet的对象
employee_infos = work_book.sheet_by_name("员工信息")  # 获取“员工信息”表

# 获取某sheet中的有效列数
ncols = employee_infos.ncols
print(ncols)

# 获取sheet中某列连续行的数据(包含了数据类型)
cols2 = employee_infos.col_slice(1, 1, 3)
print(cols2)

# 获取sheet中某列连续行的数据(不包含数据类型)
cols3 = employee_infos.col_values(1, 1, 3)
print(cols3)

运行结果:

5
[text:‘张三’, text:‘李四’]
[‘张三’, ‘李四’]

附件

excel数据

商品价格
员工信息

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值