Python学习之:xlrd库的使用

xlrd能打开的文件类型

  • 如果是 csv 文件会报错
  • 打开的文件需要时 xls 后缀结尾
import xlrd

ws = xlrd.open_workbook('data.csv')
print(ws)

报错:xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b’\xc8\xd5\xc6\xda,\xca\xd5\xc5’
在这里插入图片描述

改成 xls 后缀之后,问题解决

import xlrd

ws = xlrd.open_workbook('data.xls')
print(ws)

在这里插入图片描述

常规操作

  • 根据索引、名称来获取 worksheet 对象
import xlrd

doc = xlrd.open_workbook('data.xls')  # 打开excel文件
ws = doc.sheet_by_index(0)	# 通过索引打开 指定的worksheet
ws1 = doc.sheet_by_name('澳币历史数据')	# 通过名称打开指定的 worksheet
print(ws)
print(ws1)

在这里插入图片描述

  • 获取总行数 .nrows
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

print(ws.nrows)

在这里插入图片描述

  • 通过.get_rows() 获取表中所有的行,返回一个迭代器对象,可以通过 list 和 for 打印出来
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

for row in ws.get_rows():
    print(row)

在这里插入图片描述

值得注意的是,使用 get_rows 返回的对象是一个生成器,所以如果要对所有的rows进行切片操作的话,需要把整个 get_rows 的结果通过 list 函数来处理一下,使其成为列表,然后再操作,如下:

import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

for line in list(ws.get_rows())[0:15]:
    print(line)

在这里插入图片描述

  • 使用.row(rowx)获取某一行的信息
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

print(ws.row(0))			# 获取第 0 行
print(ws.row(1))

在这里插入图片描述

  • 使用 .row_slice(rowx,start_col,end_col) 可以获得一个行中指定的列的切片,而 .row(rowx) 只能获得单独的行
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

print(ws.row_slice(1,0,3))
print(ws.row(1))

在这里插入图片描述

行操作

nrows = table.nrows  #获取该sheet中的有效行数

table.row(rowx)  #返回由该行中所有的单元格对象组成的列表(可以指定列索引)

table.row_slice(rowx,start_col,end_col)  #返回由该列中所有的单元格对象组成的列表

table.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表

table.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表

table.row_len(rowx) #返回该列的有效单元格长度

实例化一下:
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

print(ws.row(1))
print(ws.row_types(1))
print(ws.row_slice(1,0,5))
print(ws.row_values(1))
print(ws.row_len(1))

在这里插入图片描述

列操作

ncols = table.ncols   #获取列表的有效列数

table.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表

table.col_slice(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表

table.col_types(colx, start_rowx=0, end_rowx=None)    #返回由该列中所有单元格的数据类型组成的列表

table.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表
实例化一下:
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

print(ws.ncols)
print(ws.col(1))
print(ws.col_types(1))
print(ws.col_slice(1,0,5))
print(ws.col_values(1))

在这里插入图片描述

单元格操作

table.cell(rowx,colx)   #返回单元格对象

table.cell_type(rowx,colx)    #返回单元格中的数据类型

table.cell_value(rowx,colx)   #返回单元格中的数据

实例化一下
import xlrd

doc = xlrd.open_workbook('data.xls')
ws = doc.sheet_by_index(0)

print(ws.cell(1,2))
print(ws.cell_type(1,2))
print(ws.cell_value(1,2))

在这里插入图片描述

有一个比较特殊的单元格操作 .cell_xf_index()

  • 这个方法使用的时候要求在 open_workbook 这一步将参数 formatting_info = True
import xlrd

doc = xlrd.open_workbook('data.xls',formatting_info=True)
ws = doc.sheet_by_index(0)

for i in list(ws.get_rows()):
    print(i)
   
print(ws.cell_xf_index(1,0))
print(ws.cell_xf_index(1,1))
print(ws.cell_xf_index(2,2))
print(ws.cell_xf_index(3,3))
print(ws.cell_xf_index(4,4))
print(ws.cell_xf_index(5,5))

在这里插入图片描述在这里插入图片描述

根据最后打印输出的结果可以看出, .cell_xf_index() 输出的是XF格式的索引值

  • 7
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
xlwt是Python的一个,用于将数据写入Excel文件。要使用xlwt,首先需要安装它。可以使用pip命令来安装,在命令行中输入`pip install xlwt`即可。 安装完毕后,可以开始使用xlwt来创建和写入Excel文件。首先需要导入xlwt,然后创建一个Workbook对象,表示一个新的Excel文件。可以调用Workbook的add_sheet方法来创建一个新的工作表。接着,可以在工作表中使用write方法来写入数据。write方法接受三个参数,分别是行、列和要写入的数据。例如,可以使用`sheet.write(0, 0, 'Hello')`来将'Hello'写入第一行第一列的单元格。最后,可以调用Workbook的save方法来保存Excel文件。 xlrd是另一个Python,用于读取Excel文件的数据。要使用xlrd,同样需要先安装它。可以使用pip命令来安装,在命令行中输入`pip install xlrd`即可。 安装完毕后,可以开始使用xlrd来读取Excel文件中的数据。首先需要导入xlrd,然后使用open_workbook方法来打开Excel文件。open_workbook方法接受一个参数,即要打开的Excel文件的路径。接着,可以使用sheet_by_index方法或sheet_by_name方法来获取工作表对象。可以使用工作表对象的row_values方法来获取一行的数据,使用col_values方法来获取一列的数据,使用cell_value方法来获取单元格的数据。例如,可以使用`sheet.row_values(0)`来获取第一行的数据。最后,可以使用工作簿对象的close方法关闭Excel文件。 总结起来,xlwt和xlrdPython用于处理Excel文件的两个常用。xlwt用于将数据写入Excel文件,而xlrd用于读取Excel文件中的数据。通过学习xlwt和xlrd使用,可以方便地进行Excel文件的处理和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值