2

下面的代码片段可以正常工作(包括链接) - 除了这是一个包含大量链接的大表格并且最后一张表加载了警告(“此单元格中的数字被格式化为文本或前面带有撇号”)。这是真的,但是 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()

谢谢

4

1 回答 1

5

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

同时,文档中推荐的解决方法是使用虚拟(或无)字符串编写 url,然后使用您希望的任何类型/数据覆盖 url 的字符串部分。

尝试如下修改您的示例:

...
main_sheet.write(1, 0, 'internal:linkable_sheet!A1', integer_format)
main_sheet.write(1, 0, 100,                          integer_format)
...
于 2014-02-20T19:33:40.427 回答