Самый простой способ суммировать столбцы? - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть PHP-скрипт, который импортирует до 10 разных CSV-файлов. Каждая строка каждого файла содержит информацию о банковском счете, включая баланс. После того, как я импортировал все данные CSV в свою базу данных, я хотел бы убедиться в том, что данные были туда правильно введены путем сравнения общего баланса счета в базе данных с общим балансом счета файлов CSV.

Я вижу по крайней мере несколько вариантов:

  1. Вручную суммировать все остатки на счетах в Excel - чёрт.
  2. Напишите PHP-скрипт для чтения каждого CSV-файла и суммирования остатков на счетах - тоже хм.
  3. Какой-то третий вариант, который, я надеюсь, существует. Было бы замечательно, если бы я мог сделать что-то вроде:

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

Это, очевидно, не настоящая вещь, но, надеюсь, вы поняли идею. С помощью какой-либо комбинации PHP, MySQL, команд Linux, Excel и / или любых других инструментов, существует ли простой способ сделать это?

Ответы [ 6 ]

0 голосов
/ 09 ноября 2010

Немного под другим углом: используйте движок MySql CSV , чтобы открыть ваши CSV-файлы для Mysql, а затем выполнить обычный SQL SUM.

См. Также: Модуль хранения CSV

0 голосов
/ 09 ноября 2010

Не обязательно отвечать за вас, но AWK сможет решить вашу проблему: посмотрите на эти 2 сообщения:

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

Shellкоманда для суммирования целых чисел, по одному на строку?

Мне недостаточно эксперта AWK, чтобы дать решение, но, возможно, кто-то другой может помочь нам здесь.

Другой вариант (который вы также можете рассмотреть как гадость) - использовать библиотеку, подобную PHPExcel

0 голосов
/ 09 ноября 2010

Почему вы не можете просто автоматически сложить остатки на счетах в Excel с помощью формулы и экспортировать их с остальными данными?

0 голосов
/ 09 ноября 2010

Попробуйте использовать CSVFix с опцией сводки. Это даст вам больше данных, чем вам нужно, но должно быть простым в использовании.

В противном случае, это звучит как хорошее применение для Awk.

0 голосов
/ 09 ноября 2010

Возможно, вам не придется «вручную» суммировать остатки на счетах, если вы можете использовать функции Excel из своего приложения, формула Excel в VBA будет иметь вид:

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

, где A: A дляколонка А.

0 голосов
/ 09 ноября 2010

Вы можете перебрать CSV-файл, используя fgetcsv(), который преобразует каждую строку в массив значений. Вы можете накапливать значение элемента массива, содержащего баланс, по мере продвижения по каждой итерации, пока не получите итоговую сумму. Используйте glob, чтобы получить список файлов CSV в папке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...