与Python合并.xlsx文件

双头问题在这里家伙,

首先,我一直在尝试寻找一种方法来读取python中的.xlsx文件。 xlrd现在是否读取.xlsx文件? 如果没有,build议如何读/写这样的文件?

其次,我有两个具有类似信息的文件。 一个具有范围子域的主场(如坐标(主场) – >城市 – >州 – >国家)。 在较旧的文件中,信息被赋予一个ID号,而较新的文件(logging被删除/添加)没有这些ID。 在Python中,我会1)打开这两个文件2)检查较旧的文件的主字段与较新的文件的主字段,并将它们的信息合并到一个新的文件,如果他们匹配。 鉴于它不是太大的文件,我不介意O(n ^ 2)的复杂性。 我的问题是这样的:在VBA或Excel中有没有一个明确的方法来做到这一点? 我认为使用excel库的一切似乎都太慢,而且我对VBA也不是很好。

我经常通过python和xlrd,python和Excel COM对象访问excel文件。 对于这个工作,xlrd将不起作用,因为它不支持xlsx格式。 但无论如何,这两种方法都是为了你正在寻找的东西而矫枉过正。 简单的Excel公式将提供你想要的,特别是VLOOKUP。

VLOOKUP“在表的最左列中查找值,然后从指定的列中返回同一行中的值。

关于VLOOKUP的一些build议,首先,如果你想匹配多个单元格,创build一个连接你感兴趣的单元格(在两个工作簿中)的“关键”单元格。 其次,确保将VLOOKUP的最后一个参数设置为FALSE,因为您只需要完全匹配。

关于性能,excel公式通常非常快。

阅读VLOOKUP上的帮助文件,并在这里提出进一步的问题。

后期编辑(来自Mark Ba​​ker的回答):现在有一个xlsx的python解决scheme。 Openpyxl是由Eric Gazoni在今年创build的,用于读写Excel的xlsx格式。

我今天早上才听说这个项目,所以我没有机会去看,也不知道是什么感觉。 但看看Eric'Gazoni的openpyxl项目。 代码可以在bitbucket上find。 这背后的驱动力是从Python读取/写入xlsx文件的能力。

试试http://www.python-excel.org/

我的错误 – 我错过了.xlsx的细节。

我想这是一个更容易的问题:查找或编写一个本地处理.xlsx格式的库,或者将所有的Excel电子表格保存为.xls,然后使用仅处理旧格式的库进行处理。

再加上Steven Rubalski的回答:

您可能希望能够在最左边的列中find您的查找值。 在这些情况下, IndexMatchfunction就派上用场了。 请参阅: http : //www.mrexcel.com/articles/excel-vlookup-index-match.php