【问题标题】:Merge CSVs Appending Headers合并 CSV 附加标头
【发布时间】:2011-11-16 08:13:44
【问题描述】:

我有许多包含数百列和大约 50,000 行的 CSV 文件(在 Excel 中打开时)。列标题几乎相同,但是某些列标题可能因一个 CSV 文件而异,如下例所示:-

CSV1

姓名出生出生日期

约翰·史密斯 31/01/1989

CSV2

姓名年龄姓氏地址出生日期

Paul 29 Jones 123 Smith St 30/12/1981

CSV3

姓名 姓氏 地址 电话

米克·琼斯 123 Paul St 0123456

有什么方法可以将所有这些合并到一个大的 CSV 文件中,附加标题,以便在一个主 CSV 中,我会有标题“姓名、姓氏、出生日期、年龄、地址、电话”例如然后每个 CSV 中的相应条目落入其各自的列标题中。我想这样做的原因是,然后将信息填充到一个大的 MySql / Sql Server DB 表中,因此在导入之前最初将所有这些作为一个大的 CSV 来完成似乎更容易。

有什么建议吗?

【问题讨论】:

  • 这可以通过一个漂亮的小脚本轻松完成。您是否可以访问任何脚本语言,例如 Perl 或 PHP?
  • 很遗憾我不是程序员。我确实“涉猎”了 Python,但认为这超出了我的范围(我只能做“Hello World”):)
  • 您可以使用哪些语言/技术来实现自动化? 。网?爪哇? php?这个过程多久会发生一次,它必须自动化到什么程度?它是每天的过程,还是每周的过程,还是只会发生一次?大概有多少个电子表格?
  • 我明白了。如果不使用某种语言(尤其是标题不同),这将很难实现自动化。你有多少个 CSV 文件?如果您没有 1000 个文件,这可能是半自动化的。
  • Allen,我只想在没有 3 或 4 个 CSV 文件的情况下执行此操作。谢谢

标签: mysql sql-server excel csv append


【解决方案1】:

将它们导入到三个临时表中,然后使用 name surname 和 DOB 的连接将它们合并到一个表中。否则数据会混在一起。

【讨论】:

    【解决方案2】:

    手动方法(请耐心等待,只是给出算法的想法):

    1. 生成包含所有 CSV 中所有可能标题的列的最终列表。
    2. 打开每个电子表格,一次一个。对于每个电子表格:
    3. 单击并拖动标题并插入缺失的列,使它们都与 #1 中的列表相匹配
    4. 保存文件,然后重复回到#2
    5. 将所有电子表格合并到一个电子表格中。
    6. 导入。

    如果您要自动执行此操作,您将采取大致相同的步骤。您需要一种方法来确定所有列是可能的,然后将 CSV 放入正确的格式并以电子表格/CSV 格式组合它们,或者将它们作为一组临时表导入,然后 INSERT...SELECT 重新排列它们所属的列。

    您可以使用哪些语言/技术来实现自动化? 。网?爪哇? php?这个过程多久会发生一次,它必须自动化到什么程度?它是每天的过程,还是每周的过程,还是只会发生一次?大概有多少个电子表格?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      相关资源
      最近更新 更多