首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openpyxl Unicode值

Openpyxl Unicode值
EN

Stack Overflow用户
提问于 2015-04-30 19:31:25
回答 1查看 6.5K关注 0票数 9

我使用openpyxl从Excel电子表格读取单元格值。其中一个单元格的值由换行符分隔。我想用换行符分隔字符串。然而,openpyxl似乎正在将回车序列化为一种非标准格式。请看下面的示例。

代码语言:javascript
复制
import openpyxl

# Open the worksheet
wb = openpyxl.load_workbook(wb_path)
ws = wb.get_sheet_by_name("testing")

# Get the string value
tests_str = ws.cell(row = row, column = column).value

# Split text on newlines and add them to the list
tests = []
for test in tests_str.splitlines():
    tests.append(test)

输出

代码语言:javascript
复制
>>> tests_str
u'Test1_x000D_\nTest2_x000D_\nTest3_x000D_'
>>> tests
[u'Test1_x000D_', u'Test2_x000D_', u'Test3_x000D_']

openpyxl似乎正在将\r字符序列化为_x000D_,这就是为什么splitlines()不将其作为换行符删除的原因。为什么openpyxl会这样做呢?我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-03 13:02:20

正如在openpyxl的官方Bitbucket项目中发布的2015年以来的一些支助问题 (查看Google缓存条目以避免登录。)中所指出的那样,这是由Excel完成的,并且似乎无法控制openpyxl。

为了解决这个问题,有一些实用函数用于编码/解码

代码语言:javascript
复制
>> openpyxl.utils.escape.unescape(tests_str))
u'Test1\r\nTest2\r\nTest3\r'

指向文档的链接:https://openpyxl.readthedocs.io/en/stable/api/openpyxl.utils.escape.html

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29976234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档