【问题标题】:Cross reference a text file with an excel file -使用 excel 文件交叉引用文本文件 -
【发布时间】:2013-05-30 22:21:49
【问题描述】:

我有一个包含用户名列表的文本文件,还有一个包含大约 4000 行和大约 9 列的 excel 文件。基本上我想要做的是从 Excel 文件中的 TXT 文件中找到任何实例。匹配可能不完全相同,例如:

TXT 文件有一行monkey1
excel文件在“C”列中有一个单元格,\\server1\monkey1

我想以某种方式标记该单元格,甚至是 TEXT 文件中的行,或单独的输出。

我在如何执行此操作方面也非常灵活,例如 VBA/宏等。甚至可以将其放入 Access 数据库或类似的东西中。甚至可以将 TXT 转换为 CSV 或将 Excel 转换为另一种格式。

我们将不胜感激任何建议,或任何关于我应该寻找什么的指导。

谢谢!

【问题讨论】:

  • 你愿意使用 python 吗?
  • 我愿意使用 Python,但对它有点陌生。

标签: string excel scripting cross-reference


【解决方案1】:
  1. 导出为 csv
  2. 使用csv 模块编写一个读取csv 的python 脚本;
  3. 和文本文件;
  4. 然后将一个魔术字符串(如!!)附加到包含文本文件中一行文本的每个单元格;
  5. 然后输出带有更新表的 csv 文件;
  6. 然后就可以在excel中导入了;
  7. 然后将!! 格式化搜索并替换为背景颜色的格式。

【讨论】:

  • 我找到了与您在此处描述的内容相似的内容:stackoverflow.com/questions/16139915/…
  • 但我不确定如何修改它以将其切换到我的需要,但代码可读性很强,有什么提示吗?
  • `import csv with open("mdcnas100.txt") as txtfile: reader = txt.reader(txtfile) searchstrings = {row[0] for row in reader} # 构造一组关键字open("1.csv") as csvfile: for number, line in enumerate(csvfile): for needle in searchstrings: if needle in line: print("Line {0}: {1}".format(number, line. strip())) break # 仅当每行有多个匹配项时才需要
  • @JasonGilmore:您可以编辑该行并使用csv.writer 保存修改后的电子表格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多