前言:
在上一篇的博客里,介绍了如何读取Excel表格中的数据。
其实一个Excel表格不仅具有文本数据信息,其还包含了大量的表格、字体格式信息。因为这些信息一般用处不大,所以在这里就简单的介绍一下了。
本篇主要内容:
1、获取单元格内超文本信息、合并单元格信息等;
2、获取单元格格式信息;
3、获取字体格式信息;
4、获取行、列格式信息。
1、获取超文本信息等
用于测试的表格文件为test02.xls,文件截图:
获取单元格内超文本信息:
# 导入模块
import xlrd
# 获取工作簿对象
work_book = xlrd.open_workbook('test02.xls',formatting_info = True)
# 按索引获取sheet对象
sheet_1 = work_book.sheet_by_index(0)
# 获取sheet表内超链接文本对象
print(sheet_1.hyperlink_list)
# ------运行结果------
# [<xlrd.sheet.Hyperlink object at 0x0000019B5A064358>]
# ------运行结果------
注:打开Excel文件时默认是不读取文件格式的,也就是 formatting_info 默认值为 False。
想要获取 Excel 文件格式信息,需把 formatting_info 值改为 True,这样主要是为了降低内存消耗。
获取超文本对象内容,单元格信息:
# 获取sheet表内超链接对象单元格位置、对象
print(sheet_1.hyperlink_map)
# ------运行结果------
# {(11, 2): <xlrd.sheet.Hyperlink object at 0x000001E5824B4EF0>}
# ------运行结果------
# 获取超链接文件url信息
hyperlink_obj = sheet_1.hyperlink_list[0]
print(hyperlink_obj.url_or_path)
# ------运行结果------
# https://www.sogou.com/
# ------运行结果------
获取合并单元格信息:
# 获取合并单元格信息
print(sheet_1.merged_cells)
# ------运行结果------
# [(12, 13, 2, 6), (1, 2, 1, 6)]
# ------运行结果------
注:这个获得的单元格合并信息有点奇怪:
如 (1, 2, 1, 6) 信息:第一个 1 应该是第1行(从0开始计数),2 就不是指合并到第 2 行,而是2-1 还是合并行数为:1;
同理,第三个 1 指的是 第 1 列,第四个6指的是 6-1 合并列数为 5 列。
大概是这么理解的吧…
一种简单的按行读取sheet表内所有数据方法:
上一篇博客里介绍了按行、按列读取Excel文件sheet表内数据的方法,其实这里还有一种非常简单的按行读取sheet表内数据的方法:
# 简单按行获取sheet表对象所有值
print(sheet_1._cell_values)
# ------运行结果------
# [['', '', '', '', '', ''], ['', 'CSDN 博客数据', '', '', '', ''],
# ['', '日期', '访问量', '评论数', '收藏数', '粉丝数'], ['', 43974.0, 17.0, 0.0, 0.0, 0.0],
# ['', 43975.0, 36.0, 0.0, 0.0, 0.0], ['', 43976.0, 22.0, 0.0, 0.0, 0.0],