python - "UnicodeEncodeError: ' charmap ' codec can' t 编码字符”尝试通过 openpyxl 解析 .xlsx 时

标签 python excel encoding openpyxl

--- 更新 ---

我认为这个控制台日志解决了这个问题,但是仍然不清楚如何解决它:

>>> workbook = openpyxl.load_workbook('data.xlsx')
>>> worksheet = workbook.active
>>> worksheet['A2'].value
u'\u041c\u0435\u0448\u043e\u043a \u0434\u0435\u043d\u0435\u0433'
>>> print worksheet['A2'].value
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-4: character maps to <undefined>

--- 结束更新 ---

我正在尝试使用 openpyxl 打印一些 .xlsx 单元格的值:

import openpyxl
workbook = openpyxl.load_workbook(filename='puzzles.xlsx')
worksheet = workbook.active
for row in worksheet.iter_rows('A2:K5'):
    print row[0].value

这会导致以下错误:

Traceback (most recent call last):
  File "xls_import.py", line 8, in <module>
    print row[0].value
  File "C:\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-4: character maps to <undefined>

据我所知,XLSX 编码为 UTF-8,但是:

print row[0].value.decode('utf-8')

也没有帮助:

Traceback (most recent call last):
  File "xls_import.py", line 8, in <module>
    print row[0].value.decode('utf-8')
  File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

有什么建议吗?

我正在运行 Python 2.7 和 openpyxl 2.2.5。

最佳答案

openpyxl 返回 unicode 字符串(XML 本身以 UTF-8 编码),因此您不需要解码它们(解码从编码变为 unicode),而是编码 它们采用您选择的编码。

关于python - "UnicodeEncodeError: ' charmap ' codec can' t 编码字符”尝试通过 openpyxl 解析 .xlsx 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137963/

相关文章:

python - 在 Python 中使用 .format() 方法时如何在 {} 中使用多个参数

python - 检查 pymongo 驱动程序详细信息

java - 读取多个 excel 表 selenium-webdriver、java、eclipse

excel - 如何将数组传递给子

Perl:从文件导入包含 ÅäÖ 的文本

python - 如何从python中的不同文件夹导入类?

python - CQLSH 连接错误 : Bad Request: unconfigured columnfamily local

debugging - 单步执行使用“运行应用程序”复制粘贴并执行的宏代码

Powershell - ASCII 编码正在将特殊字符更改为问号

c# - 如何在输出到html之前停止asp.net编码字符?