如何使用openpyxl保存xlsx并获得正确的编码? [垃圾字符]

问题描述 投票:0回答:1

我从MYSQL DB获取结果并使用openpyxl库将数据保存到XLSX。保存并打开文件后,我所有的名字都带有任何特殊字符,这些字符都是坏字符。我相信这是一些编码问题,但我在打开或保存工作簿时找不到设置编码的方法。

我已经尝试过使用:

wb =Workbook(encoding='utf8')


但后来我得到一个关于意外关键字参数的错误,我不知道我还能尝试什么。

处理将查询结果数据写入excel的代码部分在这里:

wb = Workbook()
ws = wb.create_sheet(0)
ws.append(res.keys())
x = res.fetchall()
xlength = len(x)
ylength = len(x[0])
for i in range(xlength):
    for k in range(ylength):
        ws.cell(row=(i+2), column=(k+1)).value = x[i][k]    
wb.save('Documents/python pigu_lt/reports/cache/{}'.format(query_type) + ".xlsx")

我的实际结果是:

'Vaikams ir kūdikiams'

我的预期结果是:

'Vaikams ir kūdikiams'

有谁知道如何做到这一点?

python excel encoding sqlalchemy openpyxl
1个回答
1
投票

这与openpyxl几乎没有关系,与MySQL以及如何连接它有关。 XLSX以XML格式存储数据,默认情况下为UTF8,因此能够表示所有unicode字符。您应该检查数据库的设置,并确保它返回unicode或utf8。

© www.soinside.com 2019 - 2024. All rights reserved.