我有一个PHP脚本,最多可导入10个不同的CSV文件。每个文件的每一行都包含银行帐户信息,包括余额。在我将所有CSV数据导入我的数据库后,我想通过将数据库中的总帐户余额与CSV文件的总帐户余额进行比较来确保数据正确存在。
我至少看到几个选项:
我希望存在的第三种选择。如果我可以做类似的事情,那将是惊人的:
excel --file="cd.csv" | sum --column="E"
这显然不是真的,但希望你能得到这个想法。使用PHP,MySQL,Linux命令,Excel和/或任何其他工具的某种组合,有一种简单的方法吗?
答案 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。