在Mac OSX Lion上使用带有xlrd
我的问题相对简单明了。我正在尝试将字符串与excel单元格值匹配,以确保与该值匹配的行中的其他数据是正确的值。
所以,比方说player = 'Andrea Bargnani'
,我希望匹配一个看起来像这样的行:
Draft Player Team
1 Andrea Bargnani - Toronto Raptors
我做:
num_rows = draftSheet.nrows - 1
cur_row = -1
while cur_row < num_rows:
cur_row += 1
row = draftSheet.row(cur_row)
if row[1] == player:
ranking == row[0]
问题在于row[1]
的值为text:u'Andrea Bargnani
,而不仅仅是Andrea Bargnani
。
我知道Excel 97之后的Excel都是unicode。但即使我player = u'Andrea Bargnani'
,仍然存在前面的text:
。所以我尝试了player = 'text:'u'Andrea Bargnani'
,但是当调用变量时,它最终看起来像u'text: Andrea Bargnani
并且仍然没有产生匹配。
我想将test: u'
除去返回的row[1]
值,以便获得适当的匹配。
答案 0 :(得分:5)
您需要从单元格中获取value
。
我在A1单元格中创建了一个带有文本“Andrea Bargnani”的示例excel文件。这里的代码解释了打印cell
和value
之间的区别:
import xlrd
book = xlrd.open_workbook("input.xls")
sheet = book.sheet_by_index(0)
print sheet.cell(0, 0) # prints text:u'Andrea Bargnani'
print sheet.cell(0, 0).value # prints Andrea Bargnani
希望有所帮助。