这里是双头问题,
首先,我一直在尝试搜索一种在 python 中读取 .xlsx 文件的方法。 xlrd 现在是否读取 .xlsx 文件?如果不是,那么读取/写入此类文件的推荐方法是什么?
其次,我有两个包含相似信息的文件。一个具有范围子字段的主要字段(如坐标(主要字段)-> 城市 -> 州 -> 国家)。在旧文件中,信息被赋予一个 ID 号,而新文件(删除/添加记录)没有这些 ID。在 python 中,我将 1) 打开这两个文件 2) 将旧文件的主字段与新文件的主字段进行比较,如果它们匹配,则将它们的信息合并到一个新文件中。鉴于它不是太大的文件,我不介意 O(n^2) 复杂性。我的问题是:在 VBA 或 excel 中是否有明确定义的方法来执行此操作?我想到的所有使用 excel 库的东西似乎都太慢了,而且我对 VBA 也不是很好。
最佳答案
我经常通过 python 和 xlrd,python 和 Excel COM 对象访问 excel 文件。对于这个作业,xlrd 将不起作用,因为它不支持 xlsx 格式。但无论如何,这两种方法对于您正在寻找的东西来说都是矫枉过正的。简单的 Excel 公式将提供您想要的,特别是 VLOOKUP。
VLOOKUP“在表的最左列中查找一个值,然后从您指定的列的同一行中返回一个值”。
关于 VLOOKUP 的一些建议,首先,如果您想匹配多个单元格,请创建一个“键”单元格,它连接您感兴趣的单元格(在两个工作簿中)。其次,确保将 VLOOKUP 的最后一个参数设置为 FALSE,因为您只需要完全匹配。
关于性能,excel 公式通常非常快。
阅读 VLOOKUP 上的帮助文件并在此处提出更多问题。
后期编辑(来自 Mark Baker 的回答):现在有一个用于 xlsx 的 python 解决方案。 Openpyxl今年由 Eric Gazoni 创建,用于读写 Excel 的 xlsx 格式。
关于python - 将 .xlsx 文件与 Python 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3997745/