// список переименований
renames =
{
{"ФИО получателя перевода", "ФИО получателя"},
{"Номер операции в СБП", "Номер документа"},
{"Номер телефона получателя", "Телефон получателя"},
{"Чек по операции", "datetime"}
------------------------------
как я понял это мы информацию которая будет браться из чека преобразуем и выгружаем в Excel под другим названием
------------------------------
// список трансформаций
txs =
{
{"datetime", (x) => DateTime.FromText(Text.BeforeDelimiter(x, " (МСК)"), "ru-RU")},
{"Сумма перевода", (x) => try Number.From(x, "en-US") otherwise Number.From(x, "ru-RU")},
{"Комиссия", (x) => try Number.From(x, "en-US") otherwise Number.From(x, "ru-RU")}
},
-------------------------------
здесь на сколько я понял меняем значения даты, суммы перевода и комиссии на русский (возможно текст)
-------------------------------
sber = (bin as binary) =>
[slip = Pdf.Tables(bin, [Implementation="1.3"]){[Id="Page001"]}[Data],
to_list = Table.ToList(slip, (x) => Text.TrimEnd(List.RemoveNulls(x){0}, {" ", "₽"})),
clean = List.Select(
List.RemoveLastN(to_list, 1),
(x) => not Text.Contains(x, "- -")
),
to_table = #table(
List.Alternate(clean, 1, 1, 1),
{List.Alternate(clean, 1, 1)}
),
rename = Table.RenameColumns(to_table, renames, MissingField.Ignore)
][rename],
--------------------------------
здесь берем изначальную таблицу которая загружается из pdf в excel "Page001" - это первая, ну дальше мне не понять
--------------------------------
// в этой строке поменяйте путь к папке с файлами
sber_files = Folder.Files("C:\Users\SANEK\Desktop\files")[[Name], [Content]],
trn = Table.TransformColumns(sber_files, {"Content", sber}),
combine = Table.Combine(
Table.CombineColumns(
trn,
{"Name", "Content"},
(x) => Table.AddColumn(x{1}, "Имя файла", each x{0}), "Content"
)[Content]
),
-------------------------------------
Здесь понятно мы excel даем информацию из какой папки подгруать файлы в столбцы [Name], [Content] - это на вкладке итог
далее для второй вкладки мы делаем функцию с указанием таблицы "Page001" из pdf, и так как путь ранее мы прописали он берется оттуда же что и к первой вкладке.
--------------------------------------
tx = Table.TransformColumns(combine, txs),
sort = Table.Sort(tx,{{"datetime", Order.Ascending}}),
split_datetime = Table.SplitColumn(sort, "datetime", (x) => {Date.From(x), Time.From(x)}, {"Дата", "Время оплаты"}),
num = Table.AddIndexColumn(split_datetime, "№ п/п", 1)
in
num
---------------------------------------
здесь мне понятно только то что дату мы просим изменить на дату и время отдельными столбцами
---------------------------------------
p.s. я только начинаю пытаться разобраться логически в кодах, многого не знаю, если будет время подскажите правильно ли я понял, может где то ошибаюсь (если я правильно пойму логическую цепочку написания кода, тогда легче будет понять все последующие шаги, корректировки возможные, да все в принципе наверно)