我从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'
有谁知道如何做到这一点?
这与openpyxl几乎没有关系,与MySQL以及如何连接它有关。 XLSX以XML格式存储数据,默认情况下为UTF8,因此能够表示所有unicode字符。您应该检查数据库的设置,并确保它返回unicode或utf8。