【问题标题】:Totaling figures in .csv files using Excel使用 Excel 汇总 .csv 文件中的数字
【发布时间】:2009-11-02 08:50:50
【问题描述】:

我有 12 个由另一个程序生成的 .csv 文件。 .csv 文件包含数字数据,以逗号分隔。

我需要一种简单的方法来汇总每个文件中某些列中的值并比较各个文件的总数,例如比较文件 1 的总数和文件 5 的总数。

每个文件的格式相同,即每条记录有 5 个值,用逗号分隔。 12 个 .csv 文件中的每个文件大小约为 50 Mb。每个文件都有不同数量的记录。

我工作的环境是“安全的”,除了我使用的 PC 上安装的程序之外,我无法运行任何程序。我安装了 Excel,并假设我可以编写 VBA 代码/宏并且可以访问命令行。我不能(例如)从 USB 密钥加载任何东西,也不能安装任何脚本语言,例如蟒蛇。

我曾想过手动执行此操作,例如在 Excel 中打开每个 .csv 文件并使用 Excel 函数(即 SUM()

我的挑战是,随着新版本 .csv 文件的生成,我需要在接下来的几周内多次执行此操作另一个系统。对于每个新版本,我需要汇总数据并跨文件进行比较。

最后要说的是,我无法更改生成 .csv 文件的系统,例如创建一组总计

鉴于我的资源有限(能够使用 PC 上已有工具以外的任何工具),我正在寻找一种我可以使用的编程解决方案

【问题讨论】:

  • 我打算建议简单地记录一个宏(打开文件,用 ctrl+end 移到最后一个,向下一个,写求和代码,复制到其他列等)但似乎有一个错误在 Excel 中 - 在宏中打开的 csv 似乎打开不正确。如果您能找到解决方法,这将是最简单的解决方案。

标签: excel csv


【解决方案1】:

您应该可以使用 excel VBA 宏轻松完成此操作,但如果需要加载和转换 50MB 的 csv 文件,则可能需要相当长的时间。

JScript(一种微软形式的 JavaScript)通常在所有机器上都可用,并在 windows 脚本主机下运行。只需创建一个扩展名为 .js 的文件,然后尝试双击运行。或者您可以使用带有 .vbs 扩展名的 vbscript。

我认为您最简单的解决方案是编写一个 excel 宏(因为您将拥有 excel vba 的 IDE,因为它是有限的)。

【讨论】:

    【解决方案2】:

    Powershell 还是批处理脚本? CSV 只不过是用逗号分隔的文本文件。应该很容易把东西撞起来。

    【讨论】:

      【解决方案3】:

      ADO 可以处理 CSV 文件,然后您可以使用 SQL 语句对适当的值求和 - 有关详细信息,请参阅 this MSDN article

      如果您转到 Excel 中的 Visual Basic 编辑器,然后尝试通过 Tools 菜单添加引用,您应该有几个用于 Microsoft ActiveX 数据对象(2.8 是最新的)。添加该引用可以让您使用 ADO .

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多