总计列的最简单方法?

时间:2010-11-09 19:57:28

标签: php mysql excel csv

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

我至少看到几个选项:

  1. 手动累计Excel中的所有帐户余额 - 哎呀。
  2. 编写一个PHP脚本来读取每个CSV文件并累计帐户余额 - 也好了。
  3. 我希望存在的第三种选择。如果我可以做类似的事情,那将是惊人的:

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

  4. 这显然不是真的,但希望你能得到这个想法。使用PHP,MySQL,Linux命令,Excel和/或任何其他工具的某种组合,有一种简单的方法吗?

6 个答案:

答案 0 :(得分:0)

您可以使用fgetcsv()迭代CSV文件,将每行转换为值数组。通过每次迭代移动时,您可以累积包含余额的数组元素的值,直到获得总和。使用glob获取文件夹中的CSV文件列表。

答案 1 :(得分:0)

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

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

其中A:A代表A列。

答案 2 :(得分:0)

尝试使用CSVFix及其摘要选项。它会为您提供超出您需要的数据,但应该易于使用。

否则,这听起来好像是用于Awk。

答案 3 :(得分:0)

为什么你不能用公式自动将excel中的账户余额总计并用剩余的数据导出?

答案 4 :(得分:0)

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

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

Shell command to sum integers, one per line?

我不是一个AWK专家来提供解决方案,但也许其他人可以在这里帮助我们。

另一个选项(您也可以考虑使用)是使用像PHPExcel

这样的库

答案 5 :(得分:0)

有点不同的角度:利用MySql CSV engine将您的CSV文件暴露给Mysql,然后执行正常的SQL SUM。

另请参阅:The CSV Storage Engine