Python3 Jupyter Notebook中Workbook类保存xlsx的UTF-8编码问题
解决Workbook保存.xlsx文件时的UTF-8编码问题
我看你在Jupyter Notebook里用Workbook类保存xlsx文件时碰到了编码报错的问题,报错提示说文件不是UTF-8编码导致保存失败,其实问题出在你对Workbook的初始化参数上——毕竟xlsx格式本身就是基于XML的,默认就支持Unicode,根本不需要手动设置UTF-8编码参数。
你之前的代码里用了wb = Workbook('utf8',0),这其实是旧版xls文件处理库(比如xlwt)的用法,和生成xlsx的库不兼容。咱们换用正确的xlsx处理库(比如openpyxl)来写,就能解决问题:
# 先导入openpyxl的Workbook类 from openpyxl import Workbook # 初始化Workbook,不需要额外的编码参数 wb = Workbook() # 获取默认的活动工作表,也可以用create_sheet,不过active更直接 ws = wb.active # 设置工作表标题 ws.title = "test" # 追加数据行 ws.append([2]) # 保存文件 workbook_name = 'test' wb.save(f"{workbook_name}.xlsx")
运行这段代码后,生成的test.xlsx文件里就能正常显示数字2了,不会再出现编码相关的错误提示。
内容的提问来源于stack exchange,提问作者Fisiquin
相关产品推荐
相关产品推荐

