Инструмент для объединения нескольких файлов OFX в один?

1252
Ryan Thompson

OFX - это формат XML для истории финансовых транзакций, и многие банки, в том числе и мой, предоставляют возможность загрузки данных транзакций в этом формате. К сожалению, они часто вынуждают вас загружать отдельный файл для каждого утверждения. Я хотел бы иметь один файл для каждой из моих учетных записей, а не набор файлов для каждого месяца.

Итак, есть ли инструменты для сбора нескольких файлов OFX и объединения их в один?

редактировать

Итак, первые несколько ответов подняли несколько вопросов путаницы. Позвольте мне уточнить.

Не текстовое слияние

OFX - это формат XML. XML имеет структуру, и именно эту структуру необходимо объединить. Это не простой случай объединения двух текстовых файлов.

Пример: у каждого файла OFX есть поле, которое определяет конечный баланс, но вы не можете просто вставить все конечные остатки в выходной файл. Вы должны выбрать самый последний. То же самое касается даты начала и окончания.

Другой пример: в каждом файле OFX указывается учетная запись (через идентификатор учетной записи, идентификатор банка, тип учетной записи и т. Д.). Было бы хорошо, если бы инструмент объединения отказывался объединять файлы OFX, если они не ссылаются на одну и ту же учетную запись.

Повторяющиеся транзакции

Наиболее важно, если файлы OFX имеют перекрывающиеся диапазоны дат, тогда некоторые транзакции могут существовать в нескольких входных файлах. Эти дубликаты транзакций должны быть дедуплицированы.

Например, предположим, что есть два входных файла. Первый входной файл охватывает месяцы с января по август. Второй охватывает месяцы с июля по декабрь того же года. В этом случае любые транзакции в июле и августе будут отображаться в обоих входных файлах. При объединении эти транзакции должны быть обнаружены как дубликаты, и только один экземпляр каждого должен появиться в выходных данных.

Обратите внимание, что такого рода дедупликация является одной из основных проблем с QIF и одной из основных причин, по которой был разработан OFX.

2

4 ответа на вопрос

3
Ryan Thompson

Ну, оказалось, проще всего было написать самому.

Вы можете получить его здесь: https://github.com/DarwinAwardWinner/ofxtoolkit

0
Marcin

Посмотрите на это . Он позволяет объединить несколько файлов OFX в один файл CSV (значение, разделенное запятыми). Вы можете открыть полученный файл в любой программе для работы с электронными таблицами, например, в Excel или OpenOffice Calc.

Есть несколько проблем с этим. Во-первых, он не производит OFX-файлы в качестве вывода. Во-вторых, он может только дополнять, а не объединять. Ryan Thompson 13 лет назад 0
0
harrymc

Вы можете использовать следующую процедуру:

  1. Конвертировать файлы OFX в формат CSV
  2. Конкатенация файлов CSV
  3. Преобразовать объединенный файл CSV обратно в формат OFX

Следующие две статьи могут помочь в выполнении этой процедуры:

Как конвертировать OFX или QIF в файл CSV
Как конвертировать CSV в файл OFX или QIF

Большая часть информации из исходных файлов будет потеряна в этом процессе. Кроме того, конвертер Ofx, на который вы ссылаетесь, похоже, предназначен для преобразования отдельных операторов. Я очень сомневаюсь, что он сможет обрабатывать дубликаты транзакций, которые могут возникнуть в результате слияния. Ryan Thompson 13 лет назад 0
@Ryan Thompson: Дублирование в объединенном CSV-файле может быть обработано одной из миллиардов существующих бесплатных программ сортировки. Я уверен, что такие программы существуют для CSV, и могут легко найти вас, если вы заинтересованы. harrymc 13 лет назад 0
-2
Velociraptors

Вы не указали ОС, но WinMerge - лучший инструмент сравнения / слияния, доступный для Windows. Поскольку OFX - это формат XML, файлы должны быть легко объединены.

Я не знаю, является ли прямое слияние файлов в файл правильным решением здесь. Если формат файла OFX не позволяет прямую конкатенацию, это может привести к серьезным ошибкам с тегами XML. Marcin 13 лет назад 0
Я только что посмотрел документацию OFX, и каждый файл OFX имеет пары тегов, которые существуют один раз для документа, ваше решение оставит его с пара тегов для каждого документа, который объединяется. Marcin 13 лет назад 0
Так как теги всегда идентичны, WinMerge не будет дублировать их при объединении документов. Слияние основано на различиях между файлами. Я также предположил, что ФП будет заботиться при объединении финансовых данных, а не слепо копировать и вставлять весь документ. Velociraptors 13 лет назад 0
Я не имею дело с файлами OFX, поэтому я действительно не могу быть уверен, как сработает простое объединение данных XML. Возможно, это могло бы работать без проблем, также возможно, что это взорвало бы мир, j / k;). Программист во мне не позволил бы мне просто объединить файлы и надеяться, что это сработает, но это только я. Marcin 13 лет назад 0
Нет, вы не можете просто объединить их, и это не простой случай слияния текста. XML имеет структуру, и именно эту структуру необходимо объединить. Пример: у каждого файла OFX есть поле, которое определяет конечный баланс, но вы не можете просто вставить все конечные остатки в выходной файл. Вы должны выбрать самый последний. То же самое касается даты начала и окончания. Другой пример: в каждом файле OFX указывается учетная запись (через идентификатор учетной записи, идентификатор банка, тип учетной записи и т. Д.). Было бы хорошо, если бы инструмент объединения отказывался объединять файлы OFX, если они не ссылаются на одну и ту же учетную запись. Ryan Thompson 13 лет назад 0
Кроме того, WinMerge предназначен для объединения нескольких версий одного файла, а не для объединения нескольких разных файлов в один. Ryan Thompson 13 лет назад 0
Я совсем не знаком с OFX. Эту информацию было бы полезно добавить в ваш первоначальный вопрос, поскольку документация на веб-сайте OFX не очень полезна. Velociraptors 13 лет назад 0
В моем первоначальном вопросе я говорю, что каждый OFX-файл, который должен быть объединен, представляет собой отдельную инструкцию (например, один файл для транзакций каждого месяца). Следовательно, они не являются расходящимися версиями одного и того же исходного файла, поэтому инструмент сравнения / слияния не является правильным инструментом. Что касается остальной информации, я обновил свой оригинальный вопрос. Ryan Thompson 13 лет назад 0