xlsxwriter:如何在表中放置内部超链接并将内容格式化为integ

2024-06-26 14:31:04 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码片段(包括链接)运行良好—除了这是一个包含大量链接的大表,并且最后一个工作表加载了警告(“此单元格中的数字格式为文本或前面带有撇号”)。这是真的,但是write方法不接受最后一个参数中的整数,write_number()似乎不接受write方法那样的超链接参数。警告可以在excel中手动修补,但这不是一个真正的选项。我希望它格式化为一个整数,但如果我可以停止得到所有的警告在结果Excel文件将满足。我尝试了各种格式设置,并尝试了各种选项,包括在工作簿创建中添加{'strings_to_numbers:True}。在

    stream = StringIO()
    workbook = xlsxwriter.Workbook(stream, {'strings_to_numbers': True})

    integer_format = workbook.add_format({'num_format': '#,##0'})
    linkable_sheet = workbook.add_worksheet('linkable_sheet')
    main_sheet = workbook.add_worksheet('main_sheet')       
    main_sheet.add_table(0,0,2,2)
    main_sheet.write(1, 0, 'internal:linkable_sheet!A1', integer_format, '100')

    workbook.close() 
    stream.seek(0)
    return stream.getvalue()

谢谢


Tags: 方法addformat警告stream参数链接main
1条回答
网友
1楼 · 发布于 2024-06-26 14:31:04

在这种情况下,XlsxWriter可能应该接受整数/浮点。我会考虑在以后的版本中允许这样做。在

同时,文档中推荐的解决方法是用一个伪字符串(或者没有字符串)编写url,然后用您希望的任何类型/数据覆盖url的字符串部分。在

尝试按如下方式修改示例:

...
main_sheet.write(1, 0, 'internal:linkable_sheet!A1', integer_format)
main_sheet.write(1, 0, 100,                          integer_format)
...

相关问题 更多 >