python - 将 .xlsx 文件与 Python 合并

标签 python excel vba

伙计们,这里有两个问题,

首先,我一直在尝试寻找一种在 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 的帮助文件并在此处提出更多问题。

后期编辑(来自马克贝克的回答):现在有一个用于 xlsx 的 python 解决方案。 Openpyxl由 Eric Gazoni 今年创建,用于读写 Excel 的 xlsx 格式。

关于python - 将 .xlsx 文件与 Python 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3997745/

相关文章:

vba - 下拉选择后无法打开匹配的工作簿

python - 有没有一种方法可以将数据从表单映射到数据库中,而无需显式定义每个变量?

python - 选择在指定位置具有最大整数值的子列表

python - python sort中不可更改的输入变量的问题

vba - 如何根据 Excel 中其他单元格的内容为一个单元格创建文本内容?

excel - 使用 Perl 将 XLSX 转换为 CSV,同时保持编码

python - 使用增量索引重命名目录中的文件

excel - 为什么第一个随机数总是一样的?

VBA比较两列并复制行

excel - 如何在Excel中匹配不同工作表中的多个列