python将字符串写入excel_将unicode字符串写入Excel2007

本文介绍了使用pyodbc从MS SQL Server获取数据,并使用openpyxl写入Excel2007文件时遇到的Unicode字符串问题。当数据中包含特殊字符如'ú'时,保存的Excel文件会损坏。作者尝试了多种编码方法来解决这个问题,但未成功。
摘要由CSDN通过智能技术生成

我正在使用pyodbc连接到MS SQL server。此外,我正试图使用openpyxl写入excel2007/10.xlsx文件。在

这是我的代码(Python2.7):import pyodbc

from openpyxl import Workbook

cnxn = pyodbc.connect(host = 'xxx',database='yyy',user='zzz',password='ppp')

cursor = cnxn.cursor()

sql = "SELECT TOP 10 [customer clientcode] AS Customer, \

[customer dchl] AS DChl, \

[customer name] AS Name, \

...

[name3] AS [name 3] \

FROM mydb \

WHERE [customer dchl] = '03' \

ORDER BY [customer id] ASC"

#load data

cursor.execute(sql)

#get colnames from openpyxl

columns = [column[0] for column in cursor.description]

#using optimized_write cause it will be about 120k rows of data

wb = Workbook(optimized_write = True, encoding='utf-8')

ws = wb.create_sheet()

ws.title = '03'

#append column names to header

ws.append(columns)

#append rows to

for row in cursor:

ws.append(row)

wb.save(filename = 'test.xlsx')

cnxn.close()

这个有效,至少在我遇到一个客户之前,例如,名字:"mún"。我的代码没有失败,一切都写入Excel,一切都很好。直到我真正打开Excel文件-这会导致一个错误,说文件已损坏,需要修复。修复文件后,所有数据都将丢失。在

我知道这段代码适用于有固定名字(只有ASCII)的客户,只要有重音字符或任何东西,Excel文件就会被破坏。在

我试图打印一行(有一个困难的客户。名称)。结果是:

row是一个元组,这是一个索引:'Mee\xf9s Tilburg'所以写\xf9 (ú)字符会导致错误,或者MS Excel无法处理它。我尝试过将一行编码为unicode(unicode(row,'utf-8')或{})等多种编码方式,但都没有任何效果。要么我尝试了一些愚蠢的东西导致错误,要么Excel文件仍然错误。在

有什么想法吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值