题
我有一个使用 openpyxl 读取 excel 文件的 Python 脚本。这曾经工作得很好,直到我发现 openpyxl 没有正确安装,这导致我在 IDE 之外运行脚本时出错。然而,修复此问题后,脚本返回我不明白它们来自哪里的数值,而不是实际值。
剧本:
wb=load_workbook(r'C:\test.xlsx', use_iterators = True)
ws=wb.get_sheet_by_name('Sheet1')
#Iterate trough all rows
for row in ws.iter_rows(row_offset=1):
for cell in row:
#If the column == A, check if there's a website value
if cell.column == 'A':
try:
print cell.internal_value
self.match = re.match(regex, cell.internal_value)
if self.match:
self.match = 'OK'
except:
pass
添加 try 块中的 print 来查看程序返回的内容,前 5 条记录如下:
0
1
31
49
143
它应该是:
None
Website
www.coolblue.nl
www.bol.com
www.elektrosky.nl
为什么我的脚本返回这些数值而不是实际值?
编辑: 我的 xml 文件的前 6 行(第一行为空)
Website | Sender | Price | Mark(s) | Payment methods
www.coolblue.nl PostNL Free Thuiswinkel Ideal, Visa, Mastercard
www.bol.com PostNL Free Thuiswinkel Ideal, Visa, Mastercard
www.elektrosky.nl PostNL € 5,00 Webshop keurmerk Ideal, Visa, Mastercard, Amex, PayPal
www.belsimpel.nl PostNL, DPD € 6,95 Thuiswinkel Ideal, Visa, Mastercard
解决方案
问题是你正在使用 .internal_value
. 。默认情况下,Excel 将字符串存储在查找表中,并将索引保留在单元格中。如果你只是使用的话应该没问题 .value
不隶属于 StackOverflow