我正在使用xlsxwriter
模块创建并写入excel文件。但是当我打开excel文件时,我会看到这个弹出窗口:
We found a problem with some content in 'excel_sheet.xlsx'. Do you want us to try to recover as much as we can? If you trust the source of this workbook, click Yes.
如果我点击是,则显示Repaired Records: String properties from /xl/sharedStrings.xml part (Strings)
,然后我就会看到内容。
我发现这是因为我使用write_rich_string
编写的单元格。
my_work_sheet.write_rich_string(row_no, col_no,format_1, "Some text in format 1", format_2, "Text in format 2", format_1, "Again in format 1")
如果我使用write_string
写它,则不会发生这种情况。 format_1
和format_2
具有字体名称,颜色,大小和垂直对齐设置。
有人能说出这里出了什么问题吗?
答案 0 :(得分:2)
我试图重新创建(感谢@jmcnamara)这个问题,我可以找出它出错的地方。
在write_rich_string
的命令中,有时它试图格式化空字符串。
my_work_sheet.write_rich_string(row_no, col_no,format_1, string_1, format_2, string_2, format_1, string_3)
我发现在某个时间点string_1
,string_2
和string_3
之间的价值变为''
。现在我只在确保它们不是write_rich_string
后才使用''
。
答案 1 :(得分:0)
一般来说,"我们发现某些内容存在问题"来自Excel的错误/警告意味着XML元素或属性在xlsx文件的某个组件文件中格式错误。同样,一般来说,这意味着XlsxWriter中存在错误,或者它无法以某种方式清理用户输入。
但是,在这种特殊情况下,没有足够的信息来确定问题所在。我拿了你的代码片段并将其转换为测试程序,它按预期工作。
import xlsxwriter
workbook = xlsxwriter.Workbook('rich_strings.xlsx')
my_work_sheet = workbook.add_worksheet()
my_work_sheet.set_column('A:A', 50)
format_1 = workbook.add_format({'color': 'red'})
format_2 = workbook.add_format({'color': 'blue'})
my_work_sheet.write_rich_string(0, 0,
format_1, "Some text in format 1 ",
format_2, "Text in format 2 ",
format_1, "Again in format 1")
workbook.close()
输出:
因此,您需要创建一个如上所述的小型自包含程序,并将a bug report提交给XlsxWriter project。