Php 求列总数的最简单方法?
我有一个PHP脚本,可以导入多达10个左右不同的CSV文件。每个文件的每一行都包含银行帐户信息,包括余额。将所有CSV数据导入数据库后,我希望通过比较数据库中的总帐户余额和CSV文件的总帐户余额,确保数据正确地进入数据库 我至少看到了几个选择:Php 求列总数的最简单方法?,php,mysql,excel,csv,Php,Mysql,Excel,Csv,我有一个PHP脚本,可以导入多达10个左右不同的CSV文件。每个文件的每一行都包含银行帐户信息,包括余额。将所有CSV数据导入数据库后,我希望通过比较数据库中的总帐户余额和CSV文件的总帐户余额,确保数据正确地进入数据库 我至少看到了几个选择: 手动合计Excel中的所有帐户余额-恶心 写一个PHP脚本来读取每个CSV文件,并合计帐户余额-也很恶心 我希望存在第三种选择。如果我能做一些像这样的事情,那将是令人惊讶的: excel--file=“cd.csv”| sum--column=“E”
excel--file=“cd.csv”| sum--column=“E”
这显然不是真的,但希望你能理解。使用PHP、MySQL、Linux命令、Excel和/或任何其他工具的组合,有没有一种简单的方法可以做到这一点?您可以使用
fgetcsv()
对CSV文件进行迭代,将每一行转换为一个值数组。您可以在每次迭代过程中累积包含余额的数组元素的值,直到得到总和。使用glob
获取文件夹中的CSV文件列表。您可能不必“手动”合计帐户余额,如果您可以从应用程序中使用Excel函数,VBA中的Excel公式将是:
Application.Sum(Range("A:A"))
其中A:A代表A列。尝试使用其摘要选项。它将为您提供比您需要的更多的数据,但应该易于使用
否则,这听起来对Awk很有用。为什么你不能用一个公式自动计算excel中的帐户余额,并将其与其余数据一起导出?不必为你完成答案,但Awk应该能够解决你的问题:看看以下两篇文章: 我不是一个能给出解决方案的AWK专家,但也许其他人可以在这里帮助我们
另一个选项(你也可以考虑YOK)是使用一个类似于
< P>的一个不同的角度:利用它来将你的CSV文件暴露到MySQL中,然后做一个正常的SQL和。p>另请参见:u可以将php更改为接受$argv(cli模式)或简单的bash
total=0;col=9;对于
cut-d''cd.csv-f$col中的i;让总数=$i+$total;完成;echo$total
;如果在windows上运行,可以使用PHP中的COM,但他在Linux上运行,看起来我在运行Linux。然而,这并不是说在Windows中自动化某些过程并将结果引入Linux是没有帮助的,我可以做到。这并不理想(我更喜欢完全自动化),但它可能是最简单的解决方案。我喜欢这个想法。我将进一步研究它,看看它是否是一个可行的选项。看起来我将使用awk
。更新:这似乎已经奏效:cat file.csv | awk-F“\”*,\“*”{s+=$2}END{print s}
(总计到第二列。)