您的位置:首页 > 汽车 > 新车 > 无锡网站建设价格费用_ai网站大全_关键词检测工具_国产免费crm系统有哪些在线

无锡网站建设价格费用_ai网站大全_关键词检测工具_国产免费crm系统有哪些在线

2025/3/17 1:30:56 来源:https://blog.csdn.net/weixin_74727170/article/details/146266283  浏览:    关键词:无锡网站建设价格费用_ai网站大全_关键词检测工具_国产免费crm系统有哪些在线
无锡网站建设价格费用_ai网站大全_关键词检测工具_国产免费crm系统有哪些在线

一 pyxlsb 的介绍

如果你要读取二进制的 xlsb 格式的 Excel 文件,那么 pyxlsb 就成了唯一选择。

.xlsb 是 Excel 的二进制文件格式,专为高效存储和快速读取设计。

pyxlsb 是一个专门用于读取 .xlsb 文件的 Python 库,但不支持写入。


二 如何使用

1.遍历 .xlsb 文件中的所有工作表,并打印每个工作表的行数和列数

import pyxlsb
import excelwith pyxlsb.open_workbook("xl/stores.xlsb") as book:for sheet_name in book.sheets:with book.get_sheet(sheet_name) as sheet:dim = sheet.dimensionprint(f"Sheet '{sheet_name}' has "f"{dim.h} rows and {dim.w} cols")

book.sheets:返回一个工作簿中所有工作表的名称列表。

for sheet_name in book.sheets:遍历工作簿中的所有工作表名称。

book.get_sheet(sheet_name):获取某个具体的工作表对象(通过名称)。

sheet.dimension:获取工作表的维度,包括:dim.h: 工作表的总行数。dim.w: 工作表的总列数。

print():打印每个工作表的名称以及其行数和列数。

2.读取特定工作表(如 "2019")中从 "B2" 开始的某些数据,并打印前两行

with pyxlsb.open_workbook("xl/stores.xlsb") as book:with book.get_sheet("2019") as sheet:data = excel.read(sheet, "B2")
print(data[:2])  # 打印前两行

with book.get_sheet("2019"):通过工作表名称索引打开名为 "2019" 的工作表。

excel.read(sheet, "B2"):使用 excel 模块(自定义模块)从指定单元格("B2")开始读取数据。返回一个列表的结构,保存读取到的值。

3.将以日期为格式的单元格中的值转换为 datetime 对象

pyxlsb 库在读取 .xlsb 文件时,无法直接识别和解析包含日期的单元格。它会将这些日期值作为原始的数值数据(例如浮点时间戳)返回。因此,用户需要手动将这些数值转换为 Python 的 datetime 对象。

from pyxlsb import convert_date# 假设 data[1][3] 是从某个单元格读取到的日期值(数值格式)
converted_date = convert_date(data[1][3])# 转换后得到的是一个 datetime 对象,例如:
# datetime.datetime(2018, 7, 20, 0, 0)

convert_date 是 pyxlsb 提供的一个实用函数,用于将以数字形式存储的日期值转换为 Python 的 datetime.datetime 对象。

data[1][3] 表示第二行第四列的值。如果这个单元格包含日期,那么它的值可能是一个浮点数,表示 Excel 内部的时间戳。

调用 convert_date(data[1][3]) 会将这个浮点数转换为一个 datetime.datetime 对象。转换后可能得到 datetime.datetime(2018, 7, 20, 0, 0),这表示日期为 2018 年 7 月 20 日,时间为午夜(00:00)。

4.在使用版本低于 1.3 的 pandas 读取 xlsb 格式的文件时,需要显式地指定引擎

 df = pd.read_excel("xl/stores.xlsb", engine="pyxlsb")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com