下面的代码段工作正常(包括链接) - 除了这是一个包含大量链接的大表,最后的工作表加载了警告(“此单元格中的数字格式为文本或前面有撇号” )。这是正确的,但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()
由于
答案 0 :(得分:4)
在这种情况下,XlsxWriter可能应该接受整数/浮点数。我将在未来版本中考虑允许这样做。
与此同时,文档中推荐的解决方法是使用虚拟(或无)字符串编写url,然后使用您希望的任何类型/数据覆盖url的字符串部分。
尝试按如下方式修改示例:
...
main_sheet.write(1, 0, 'internal:linkable_sheet!A1', integer_format)
main_sheet.write(1, 0, 100, integer_format)
...