原文链接:https://www.cooooder.com/archives/20201207
API Reference
xlrd
xlrd.book
xlrd.sheet
xlrd.open_workbook
打开一个Excel文件读取数据
xlrd.open_workbook(
filename=None,
logfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>,
verbosity=0,
use_mmap=1,
file_contents=None,
encoding_override=None,
formatting_info=False,
on_demand=False,
ragged_rows=False
)
参数
- filename - 待打开的Excel文件路径
- logfile - 向一个文件输出日志,默认sys.stdout
- verbosity - 增加日志输出详细程度
- use_mmap - 是否开启mmap模块
- file_contents - 传入字符串或者mmap对象来覆盖filename参数
- encoding_override - 处理老版本的Excel文件(Excel 97)时,并且内部记录的"代码页"丢失或不正确时使用,新版本Excel该参数不生效
- formatting_info - 默认为False,可以节省内存,在这个情况下,空的单元格,存在格式信息但是没有数据,将会被当成空来对待,将会裁剪掉任何底部,右边的“边缘”空的表格,只有cell_value()和cell_type是有效的;当取值为True时,会读取各种格式的信息,当与xlsx文件一起使用时,将引发NotImplementedError异常
- on_demand - 控制sheet表是在初始化时全部加载(False)还是调用时加载(True)
- ragged_rows - 默认False,表示所有行都用空单元格填充,所有行的大小都与 ncol 相同;若设置True,表示行的末尾没有空单元格,如果行的大小变化很大,这可以节省大量内存,参见 row_len() 方法
备注
- 如果路径或者文件名有中文给前面加一个r表示原生字符,xlrd.open_workbook(r’D:\中文路径\xxxx.xls’)
返参
- Book.class 实例
xlrd.dump
用于调试:以char&hex的格式转储xls文件的BIFF记录
xlrd.dump(
filename,
outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>,
unnumbered=False
)
参数
- filename - 待转储的文件路径
- outfile - 转储写入的文件
- unnumbered - 若为True,忽略偏移(只针对有意义的差异)
xlrd.count_records
用于调试和分析:汇总文件的BIFF记录,生成一个排序后的文件 (record_name, count)
xlrd.count_records(
filename,
outfile=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>
)
参数
- filename - 待汇总的文件路径
- outfile - 汇总写入的文件
class Book
工作簿(workbook)的内容,通过 xlrd.open_workbook(filepath) 获得实例化对象
属性
- datamode= 0
- 时间模式 0:Windows时间系统,1:Mac时间系统。
- biff_version= 0
- BIFF版本(20 <= version <=80,代表Excel 2.0 - Excel 8.0)。
- codepage= None
- 返回一个整数,表示此文件的字符集。对于BIFF8以及更高版本,该值为1200,代表Unicode。比如:1252 -> ‘cp1252’ 10000 -> ‘mac_roman’。
- encoding= None
- 派生于codepage的编码 (注:Excel输入的每个文本都是下列编码之一:Latin1、UTF_16_LE,如果不匹配Latin1、更老的文件MS字符集,若用不正确的字符集写入Excel文件时,需要在open_workbook方法中指定正确的字符集,如open_workbook(‘demo.xls’,encoding=‘cp1252’))
- countries= (0, 0) - 用于针对未知的codepage识别出正确的字符集,如:(1,61)表示(USA, Australia)。
- user_name= ''
- 记录最后一个保存文件的用户名称。
- font_list= []
- Font class实例列表,每个实例对应一个FONT记录。
- 0.6.1版本中的新功能
- format_list= []
- Format class 实例列表,每个实例对应一个FORMAT记录。
- 0.6.1版本中的新功能
- format_map= {}
- format_key 到 Format 对象的映射关系。
- 0.6.1版本中的新功能
- load_time_stage_1= -1.0
- 将XLS图片提取为连续的字符串的时间(以秒为单位)(或等效的mmap)
- load_time_stage_2= -1.0
- 解析连续字符串的时间(或等效的mmap)(以秒为单位)
- nsheets= 0
- Excel当前存在的sheet页数量,即使没有sheet页加载也会有值
- name_and_scope_map= {}
- (lower_case_name, scope)到单个Name对象的映射。
- 0.6.0版本中的新功能
- name_map= {}
- (lower_case_name, scope)到包含Name对象列表的映射,该列表按照范围顺序排序。通常列表中只有一项(全局)
- name_obj_list= []
- colour_map= {}
- 提供了颜色索引的定义,在屏幕上或者PDF文件上渲染需要用到。如果写入XLS文件,则需要使用palette_record。0.6.1版本中的新功能
- 在open_workbook(…, formatting_info=True)时生效
- palette_record= []
- 如果用户更改了标准色板中的任何颜色,则XLS文件将包含一条具有56个RGB值的PALETE记录(对于Excel4.0或更早版本,则为16个),例如:[(r0, b0, g0),…,(r55, b55, g55)]
- 在open_workbook(…, formatting_info=True)时生效
- xf_list= []
- XF类实例列表,每个实例对应一条XF记录
- 0.6.0版本中的新功能
- style_name_map= {}
- 这可以通过名称访问内置样式和用户自定义样式的扩展格式信息。
- 根据name映射到(build_in, xf_index),name既可以是一个用户自定义样式名称,也可以是一个内置样式名称
- build_in有两种标识,1:内置样式 2:用户自定义
- xf_index是Book.xf_list的一个索引
- 0.7.4版本中的新功能
方法
- sheets()
- 作用:所有未被加载的sheet页将被加载
- return:工作薄的sheets页列表[Sheet]
- sheet_by_index(sheetx)
- 作用:根据索引获取sheet页
- parameters:sheetx sheet索引
- return:Sheet
- sheet_by_name(sheet_name)
- 作用:根据sheet页名称获取sheet页
- parameters:sheet_name sheet页名称
- return:Sheet
- sheet_names()
- 作用:返回所有的sheet页名称列表
- return:名称列表
- sheet_loaded(sheet_name_or_index)
- 作用:判断sheet页是否已加载
- parameters:sheet_name_or_index sheet页名称或者索引
- return:True:已加载 False:未加载
- unload_sheet(sheet_name_or_index)
- 作用:卸载sheet页
- parameters:sheet_name_or_index sheet页名称或者索引
- release_resources()
class Name
与命名引用、公式、宏等有关的信息(注:不适用Book.biff_version < 50的版本)
class Sheet
包含一个sheet页的数据内容,需要先调用xlrd.open_workbook()获得Book对象再来获取Sheet对象
持续补充中…@2020/12/08