xlsxwriter在workbook.close()之前捕获错误



我有一个脚本,该脚本将10个工作表保存到.xlsx使用XLSXWriter。当我尝试关闭工作表时,我会发现一个错误:

"UnicodeDecodeError: 'ascii' codec can't decode byte 0xea in position 28: ordinal not in range(128)".

当我将行写入工作表时,我会尝试捕获错误,但没有任何成功。结果,我的工作表根本无法保存,我无法处理该行的例外。

这是我的代码 -

def xlsx_writer(name, data):
    worksheet1 = workbook.add_worksheet(name)
    line_number = 0
    for line in data:
        try:
            worksheet1.write_row(line_number, 0, line)
        except UnicodeDecodeError:
            line = [x.decode('utf-8') for x in line]
            worksheet1.write_row(line_number, 0, line)

在编写每一行而不是关闭工作簿时,我该如何捕获错误?

在编写每一行而不是关闭工作簿时,我该如何捕获错误?

简而言之,您不能。当将非ASCII或UTF-8编码数据编码到目标文件时,此错误是发生错误的,直到文件关闭之前,这才发生。

如果您只想避免此错误,则只需将数据传递给write()write_row()

最新更新