Извлечь факты XBRL в Excel - PullRequest
1 голос
/ 01 июня 2019

Я хотел бы автоматически циклически просматривать несколько сотен XBRL-файлов, собирать определенные данные и вставлять их в таблицу Excel. Мне удалось заставить работать «тангенциальный код», но я не могу ответить на основной вопрос.

Например, в файле XBRL мне нужно значение этого факта, представленное в отношении концепции pfs:GainLossBeforeTaxes:

<pfs:GainLossBeforeTaxes
    unitRef="U-EUR"
    decimals="INF" 
    contextRef="CurrentDuration">1091134.68</pfs:GainLossBeforeTaxes>

==> Мне нужно получить 1091134.68

Это, несомненно, легко с Regex, но я не могу заставить это работать. И временные ограничения также важны для меня, поэтому я хотел бы получить какой-то минимально жизнеспособный продукт, а затем расширить его, но на данный момент код является скорее средством для достижения цели, а не конечным продуктом ( анализ).

Пока я придумал следующее:

Sub EDI_Input()

Dim myFile As String
Dim textline As String
Dim StartPos As Integer
Dim EndPos As Integer

myFile = Application.GetOpenFilename()

Open myFile For Input As #EDI
Do Until EOF(EDI)
Line Input #EDI, textline


If InStr(textline, "NonRecurringFinancialCharges") <> 0 And InStr(textline, "CurrentDuration") <> 0 Then

Endpos = InStr(textline, "</pfs:NonRecurringFinancialCharges><")


result = Left(textline, Endpos - 1)
StartPos = InStr(textline, "Char(34)&CurrentDuration&Char(34)&>")
textline = Left(textline, StartPos + 18)
Debug.Print (textline)

End If

Loop 

Я все время спотыкаюсь о «неправильной процедуре вызова или ошибке аргумента», возможно, потому что я загружаю много данных в моей строке.

Кто-нибудь, кто имеет какое-либо мнение о том, как получить хотя бы частично работающую программу - таким образом я могу хотя бы частично начать свой анализ - Или учебник для начинающих / опыт работы с этой проблемой?

1 Ответ

0 голосов
/ 03 июня 2019

Добро пожаловать в StackOverflow!

Я рекомендую использовать процессор XBRL, например Arelle , который является открытым исходным кодом. Если я правильно помню, вы сможете экспортировать факты в форматы, такие как CSV, и импортировать их в Excel.

В противном случае вы в конечном итоге переопределите процессор XBRL в VBA. Есть много деталей, которые необходимо учитывать, чтобы получить правильные значения (соединение с контекстом, рассмотрение измерений и т. Д.). Значения могут быть представлены в соответствии с концепцией за несколько периодов и т. Д.

Процессор XBRL сделает это из коробки.

...