我在python上使用xlrd从excel导入一组数据
我得到的所有数据都是这样的字符串:text:u'l\xc9gende'
我操作这些数据并尝试将它们放回excel(使用xlsxwriter)中,当我这样做时,我得到相同的文本块:u'L\xc9GENDE'而不是L eGende。
什么对我有效:

#!/usr/bin/env python
# -*- coding: latin-1 -*-
import xlsxwriter
import sys

workbook = xlsxwriter.Workbook('hello.xlsx')
worksheet = workbook.add_worksheet()
data = u'L\xc9GENDE'
worksheet.write('A1',data)
workbook.close()

这样就行了,我会在A1室找到性别
但是如果我试图操作一个已经给我u'l\xc9gende'的字符串,它只会在a1单元格中显示l\xc9gende
----编辑----
我用来从excel中检索数据的代码
from xlrd import open_workbook

def grabexcelfile():
    wb = open_workbook('leg.xls',encoding_override='latin-1')
    log = []
    txt = ''
    for s in wb.sheets():
        for row in range(s.nrows):
            values = []
            for col in range(s.ncols):
                 txt = str(s.cell(row,col))
                 txt.replace('-',' ',10)
                 log.append(txt)
    return log

x = grabexcelfile()
print type(x[0]),x[0]

打印给我:文本:u'l\xc9gende'

最佳答案

试试这个。

import unicodedata
data = u'L\xc9GENDE'
unicodedata.normalize('NFKD',data).encode('ascii','ignore')

你可以参考这里了解更多->Convert a Unicode string to a string in Python (containing extra symbols)

07-28 03:24