UnicodeDecodeError:'ascii' 编解码器无法解码位置0的字节0xc2:序数超出范围(128)

0 投票
1 回答
3582 浏览
提问于 2025-04-18 08:35

我写了下面的代码,用来提供一个将要创建的Excel文件的路径,这个文件是用XLWT模块生成的。

master_path = r"C:\Users\nbt8ye8\Documents\Docs\Report Automation\KBE Reporting\Reports"
master_excel_file_raw = "KBE Master Data.xls"
master_excel_file = os.path.join(master_path, master_excel_file_raw)

然后在代码的后面,我用下面的代码创建Excel文件(这个部分没有问题):

master_excel_wbook = xlwt.Workbook()
master_excel_wsheet = master_excel_wbook.add_sheet("All Data", cell_overwrite_ok=True)
master_excel_wbook.save(master_excel_file)
master_excel_wbook.save(tempfile.TemporaryFile())

但是当我运行代码时,它给我报了下面的错误。

Traceback (most recent call last):
File "C:\Users\nbt8ye8\workspace\Report Automation\import_data.py", line 1225, in <module>
createExcelFile()
File "C:\Users\nbt8ye8\workspace\Report Automation\import_data.py", line 1219, in createExcelFile
master_excel_wbook.save(master_excel_file)
File "build\bdist.win32\egg\xlwt\Workbook.py", line 662, in save
File "build\bdist.win32\egg\xlwt\Workbook.py", line 637, in get_biff_data
File "build\bdist.win32\egg\xlwt\Workbook.py", line 599, in __sst_rec
File "build\bdist.win32\egg\xlwt\BIFFRecords.py", line 76, in get_biff_record
File "build\bdist.win32\egg\xlwt\BIFFRecords.py", line 91, in _add_to_sst
File "build\bdist.win32\egg\xlwt\UnicodeUtils.py", line 50, in upack2
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

有没有人知道怎么解决这个问题?我尝试过对字符串进行编码和解码,但到目前为止都没有成功,可能是我做得不对。任何帮助都会非常感谢。谢谢!

1 个回答

0

@RyanG 说得对,这个错误是因为我的 Excel 文件里有 Unicode 数据。后来我把 Excel 文件里的 Unicode 数据去掉了,问题就解决了。再次感谢。

撰写回答