我有一个使用 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top