代码之家  ›  专栏  ›  技术社区  ›  Jason Swett

合计列的最简单方法?

  •  0
  • Jason Swett  · 技术社区  · 14 年前

    我有一个PHP脚本,可以导入10个左右不同的CSV文件。每个文件的每一行都包含银行帐户信息,包括余额。在我将所有CSV数据导入数据库之后,我想通过比较数据库中的总帐户余额和CSV文件的总帐户余额来确保数据正确地进入数据库。

    我至少看到了几个选择:

    1. 编写一个PHP脚本来读取每个CSV文件并合计帐户余额-也很糟糕。
    2. 我希望有第三种选择。如果我能做些像这样的事情那就太棒了:

      excel --file="cd.csv" | sum --column="E"

    这显然不是真的,但希望你能明白。使用PHP、MySQL、Linux命令、Excel和/或任何其他工具的组合,是否有一种简单的方法可以做到这一点?

    6 回复  |  直到 14 年前
        1
  •  0
  •   Community CDub    8 年前

    不必为你完成答案,但AWK应该能够解决你的问题:看看这两个帖子:

    https://superuser.com/questions/53652/transforming-csv-file-using-sed

    Shell command to sum integers, one per line?

    另一个选择(您可能也会觉得不舒服)是使用类似于 PHPExcel

        2
  •  0
  •   bcosca    14 年前

    fgetcsv() 它将每一行转换为一个值数组。在每次迭代过程中,可以累积包含余额的数组元素的值,直到得到总和。使用 glob

        3
  •  0
  •   Lance Roberts    14 年前

    您可能不必“手动”合计帐户余额,如果可以使用应用程序中的Excel函数,则VBA中的Excel公式为:

    Application.Sum(Range("A:A"))
    

    其中A:A表示A列。

        4
  •  0
  •   Alan Geleynse buhbang    14 年前

    CSVFix 它的摘要选项。它将为您提供比您需要的更多的数据,但应该易于使用。

    否则,这听起来是Awk的一个好用法。

        5
  •  0
  •   conartist6    14 年前

        6
  •  0
  •   Hannes de Jager Ruben    14 年前

    有点不同的角度:利用 MySql CSV engine

    另见: The CSV Storage Engine

    推荐文章