2

我正在使用 XLRD 尝试读取和操作封装在我的 excel 文档单元格中的字符串文本。我正在发布我的代码,以及当我选择打印某个列时返回的文本。

import xlrd
data = xlrd.open_workbook('data.xls')
sheetname = data.sheet_names()
employees = data.sheet_by_index(0)

print employees.col(2)

>>>[text:u'employee_first', text:u'\u201cRichard\u201d', text:u'\u201cCatesby\u201d', text:u'\u201cBrian\u201d']

我的意图是创建一个字典或使用 python 中的字符串引用 excel 文档。我想让我的程序中的一些函数在本地处理数据,然后在稍后的时间点(不在这个问题的范围内)输出到第二个 excel 文件。

我如何摆脱这些额外的信息?

4

2 回答 2

1

如果您只对单元格的值感兴趣,那么您应该这样做:

values = sheet.col_values(colx=2)

代替:

cells = sheet.col(colx=2)
values = [c.value for c in cells]

因为它更简洁、更高效(Cell对象是在请求时动态构建的)。

于 2013-02-01T19:10:57.773 回答
1

employees.col(2)xlrd.sheet.Cell实例列表。要从列中获取所有值(而不是Cell对象),您可以使用以下col_values方法:

values = employees.col_values(2)

你也可以这样做(我原来的建议):

values = [c.value for c in employees.col(2)]

但这比使用col_values.

\u201c\u201d分别是 unicode 左右双引号。如果你想摆脱这些,你可以使用 lstrip 和 rstrip 字符串方法。例如这样的:

values = [c.value.lstrip(u'\u201c').rstrip(u'\u201d') for c in employees.col(2)]
于 2013-01-31T04:00:25.153 回答