【发布时间】:2015-07-15 16:26:44
【问题描述】:
我有两个 XLSX 文件(Cookies 和 Cream),我想知道 A 列(Cookie 中)每一行中的值是否存在于 D 列(Cream 中)的某些行中。
使用openpyxl,我导出了以下代码:
for mrow in range(1, Cookies.get_highest_row() +1):
for arow in range(1, Cream.get_highest_row() +1):
if cookies['A' + str(mrow)].value == cream['D' + str(arow)].value:
print(cookies['A' + str(mrow)].value)
break
尽管这确实按预期工作,但这需要很长时间才能执行,因为 cookie 包含大约 7000 行,而 cream 有超过 24,000 行。
感谢您的帮助
【问题讨论】:
-
我对任何 XLSX API 都不是很熟悉,
cookies和cream是什么类型的对象?将所需的列(即 A 和 D)转换为常规 python 列表并使用它们会更便宜吗? -
@user3267581 这听起来是个好主意。 Cookies 和 Cream 的对象是可以访问和篡改每一列的电子表格。如何轻松地将 7000 和 24,000 项从 Excel 表加载到列表中?我将如何比较这两个列表?理想情况下,我希望它告诉我以下信息(可能是文本文件中的列表?):“这些是以下‘字符串’,其中包含在 Cookies 中但不在 Cream 中”
-
正如我所说,我不知道您使用的是什么库。你能提供任何信息吗?也许考虑将列实际转换为 python
sets,这样您就可以轻松地轻松执行差和交运算。列表似乎足够小。
标签: python excel search find openpyxl