28 worksheet.add_write_handler()
优质
小牛编辑
133浏览
2023-12-01
add_write_handler
(user_type, user_function) 向write()
方法添加一个回调函数用来处理用户定义的数据类型。
- 参数:
- user_type (type) – 要匹配的类型。
- user_function (types.FunctionType) – 用于写入类型数据的用户定义函数。
就像上一节所说的,write()
方法将基本的Python数据类型映射为Excel的数据类型。如果要在write()
方法添加不受支持的数据类型,那么可以使用add_write_handler()
方法来扩展它。
例如,你想让write()
方法自动将uuid
作为字符串来写入,那么你可以创建一个接受uuid作为参数,并将其转换为字符串,然后使用write_string()
写入的函数:
def write_uuid(worksheet, row, col, uuid, format=None):
string_uuid = str(uuid)
return worksheet.write_string(row, col, string_uuid, format)
然后,你就可以添加一个与uuid
类型匹配的处理程序,并调用刚刚定义的函数:
worksheet.add_write_handler(uuid.UUID, write_uuid)
然后,你就可以直接使用write()
方法直接写入,而不用进行数据类型的修改了:
my_uuid = uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
# Write the UUID. This would raise a TypeError without the handler.
worksheet.write('A1', my_uuid)
可以使用add_write_handler()
方法添加多个回调函数,但是每个数据类型只允许有一个回调操作:
worksheet.add_write_handler(int, test_number_range)
worksheet.add_write_handler(float, test_number_range)
有关此方法的更多信息,可以查看后续的文档。