Что нового

Поиск значений в txt файле и запись в таблицу Excel

Maggot_515

Новичок
Сообщения
11
Репутация
0
Версия AutoIt: 3.3.14.5

Описание:
Имеется неограниченное количество txt файлов с записями формата JSON и таблица Excel.
Задача программы вытащить из каждого файла определенные значения (какие описывать не буду т.к это работает) и записать их в заранее созданную таблицу Excel. Из каждого файла txt берется месяц покупки в текстовом виде и создается одноименный лист в этот лист записываются все остальные значения txt файла.

Что не получается сделать:

*Если попадается файл с покупкой этого же месяца его надо дописать в существующий лист отступив от последнего столбца 2 столбца и продолжить запись новых значений и т.д. Пример последняя запись была сделана в столбце E , значит следующая столбец H.

*Под каждым столбцом Сумма необходимо вставить формулу =Сумм(меняющийся диапазон)

*Значение столбцов Цена и Сумма надо разделить на 100

Код:
#include <Excel.au3>
#include <File.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <Date.au3>



$pattern = '(?i).*?\Q"dateTime" : "\E(.+?)".*' ; Дата чека
$pattern1 = '(?i).*?\Q"name" : "\E(.+?)",.*' ;Наименование
$pattern1_ = '(?i).*?\Q"name": "\E(.+?)",.*' ;Наименование_
$pattern2 = '(?i).*?\Q"quantity" : \E(.+?)\D\s.*?' ;Колличество
$pattern2_ = '(?i).*?\Q"quantity": \E(.+?)\D\s.*?' ;Колличество_
$pattern3 = '(?i).*?\Q"price" : \E(.+?)\D\s.*?' ;Цена
$pattern3_ = '(?i).*?\Q"price": \E(.+?)\D\s.*?' ;Цена_
$pattern4 = '(?i).*?\Q"sum" : \E(.+?)\D\s.*?' ;Сумма
$pattern4_ = '(?i).*?\Q"sum": \E(.+?)\D\s.*?' ;Сумма_

Local $aArray = _FileListToArrayRec(@ScriptDir, "*.txt", $FLTAR_RECUR, $FLTAR_SORT) ; $FLTAR_RECUR (1) - Search in all subfolders (unlimited recursion) $FLTAR_SORT - сортировка без нее не работает

;_ArrayDisplay($aArray, "Sorted tree", 32)

For $i = 1 To $aArray[0]
$sArray = $aArray[$i]
$hFile = FileOpen($sArray, 0)
$sText = FileRead($hFile)
FileClose($hFile)

$aRes = StringRegExp($sText, $pattern, 1) ; флаг=3, возвращает все найденные группы
$s = _ArrayToString($aRes)
$DataTime = StringRegExpReplace($s, '(\d{4})-(\d{2})-(\d{2})T', ' $3.$2.$1 ')
$Mounth = StringRegExpReplace($s, '(\d{4})-(\d{2})-(\d{2})T.*', '$2')
$sLongMonthName = _DateToMonth($Mounth)

;MsgBox(4096, "$DataTime", $DataTime)

;MsgBox(4096, "$Mounth", $sLongMonthName)

$avArraySource1 = 'НАИМЕНОВАНИЕ'
$aRes1 = StringRegExp($sText, $pattern1, 3) ; флаг=3, возвращает все найденные группы
If @error Then   $aRes1 = StringRegExp($sText, $pattern1_, 3) ; флаг=3, возвращает все найденные группы
_ArrayInsert($aRes1, 0, $avArraySource1)


;_ArrayDisplay($aRes1, "$aRes1") ; функция для просмотра массива



$avArraySource2 = 'КОЛ-ВО'
$aRes2 = StringRegExp($sText, $pattern2, 3) ; флаг=3, возвращает все найденные группы
If @error Then $aRes2 = StringRegExp($sText, $pattern2_, 3) ; флаг=3, возвращает все найденные группы
   _ArrayInsert($aRes2, 0, $avArraySource2)


;_ArrayDisplay($aRes2, "$aRes2") ; функция для просмотра массива



$avArraySource3 = 'ЦЕНА'
$aRes3 = StringRegExp($sText, $pattern3, 3) ; флаг=3, возвращает все найденные группы
_ArrayInsert($aRes3, 0, $avArraySource3)

;_ArrayDisplay($aRes3, "$aRes3") ; функция для просмотра массива

$avArraySource4 = 'СУММА'
$avArraySource4_ = '=СУММ(E4:E46)'
$aRes4 = StringRegExp($sText, $pattern4, 3) ; флаг=3, возвращает все найденные группы
If @error Then $aRes4 = StringRegExp($sText, $pattern4_, 3)
_ArrayInsert($aRes4, 0, $avArraySource4)
_ArrayAdd($aRes4, $avArraySource4_)


;_ArrayDisplay($aRes4, "$aRes4") ; функция для просмотра массива


; Create application object and open an example workbook
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xlsx")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example", "Error opening workbook '" & @ScriptDir & "\_Extras\Excel1.xlsx'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf
Sleep(100)
_Excel_SheetAdd ($oWorkbook, -1, False, 1, $sLongMonthName)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example 1", "Error adding sheets." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example 1", "Two sheets added after the last one.")
Sleep(100)
$Formula = '=СУММ(E4:E46)'
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRes1, "B3")
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRes2, "C3")
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRes3, "D3")
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aRes4, "E3")
;$oWorkbook.ActiveSheet.Cells(50,5).Formula = $Formula
Sleep(100)
_Excel_BookSave($oWorkbook)

Next


содержимое txt файлов

1-й
{
"document" : {
"receipt" : {
"operator" : "Ерощенко Оксана Александровна",
"userInn" : "1435285530",
"totalSum" : 1221500,
"items" : [
{
"quantity" : 1,
"name" : "Люстра 1\/1 Арт.83069В-9",
"price" : 492001,
"nds18" : 75051,
"sum" : 492001
},
{
"quantity" : 2,
"sum" : 159600,
"price" : 79800,
"name" : "PalmBaby 44шт р.L (9-14кг) Подгузники-трусики детские 1\/4, 1\/6",
"nds10" : 14509
},
{
"quantity" : 1,
"name" : "Элара Кидс 44шт р.L Подгузники-трусики детские Ультратонкие 1\/",
"price" : 79600,
"nds18" : 12142,
"sum" : 79600
},
{
"quantity" : 2,
"name" : "OMO RED 1,6л Гель для стирки (мяг.упак.) 1\/6",
"price" : 29200,
"nds18" : 8908,
"sum" : 58400
},
{
"quantity" : 1,
"name" : "Глорикс 1л. сред. д\/пола - Лаванда 1\/12",
"price" : 15600,
"nds18" : 2380,
"sum" : 15600
},
{
"quantity" : 1,
"name" : "Сиф Актив 250мл. Чистящий крем - Лимон 1\/24",
"price" : 9600,
"nds18" : 1464,
"sum" : 9600
},
{
"quantity" : 1,
"name" : "Эльсев 400мл. Лоу Шампунь - ПВ5 1\/6",
"price" : 25700,
"nds18" : 3920,
"sum" : 25700
},
{
"quantity" : 1,
"name" : "Комет 475гр. Чистящий порошок с хлоринолом - Океан (в банке)",
"price" : 6000,
"nds18" : 915,
"sum" : 6000
},
{
"quantity" : 1,
"name" : "Синергетик 1л Ср-во д\/мытья посуды и кух.инвентаря биоразл.кон",
"price" : 15200,
"nds18" : 2319,
"sum" : 15200
},
{
"quantity" : 1,
"name" : "Контейнер д\/аптечки 0,8л дорожный, пласт. 1\/24 Арт.30903",
"price" : 12400,
"nds18" : 1892,
"sum" : 12400
},
{
"quantity" : 1,
"name" : "Эльсэв 400мл Бальзам д\/волос Полное восстановление 5 1\/12",
"price" : 18500,
"nds18" : 2822,
"sum" : 18500
},
{
"quantity" : 5,
"name" : "Туалетная бумага Набережные Челны 1\/48",
"price" : 1520,
"nds18" : 1159,
"sum" : 7600
},
{
"quantity" : 2,
"name" : "Солфи 50л. салфетки бумажные - белые 24*24см. 1\/48",
"price" : 1650,
"nds18" : 503,
"sum" : 3300
},
{
"quantity" : 1,
"name" : "Набор д\/специй \"Снежная королева\" 1\/12\/72 Арт.CS681607-A",
"price" : 12800,
"nds18" : 1953,
"sum" : 12800
},
{
"quantity" : 4,
"name" : "Джонсонс Бэби 50мл. Кpем детский - С молоком 1\/24",
"price" : 6875,
"nds18" : 4195,
"sum" : 27500
},
{
"quantity" : 1,
"name" : "Celesta Перчатки хозяйственные в асс-те 1\/120 Арт.700",
"price" : 5900,
"nds18" : 900,
"sum" : 5900
},
{
"quantity" : 1,
"name" : "Фартук 52*72см \"Звездочки\" (серый) 1\/6 Арт.МТ71-129",
"price" : 12800,
"nds18" : 1953,
"sum" : 12800
},
{
"quantity" : 1,
"name" : "Рукав д\/запекания с клипсами CUOCO (3м.) Арт.3503 1\/50",
"price" : 6200,
"nds18" : 946,
"sum" : 6200
},
{
"quantity" : 1,
"name" : "НАТУРЕЛЛА 52шт. Ежедневные прокладки - Camomile Light Trio 1\/8",
"price" : 13500,
"nds18" : 2059,
"sum" : 13500
},
{
"quantity" : 1,
"name" : "Котекс 20шт Прокладки гигиенические - Ультра софт Нормал 1\/16",
"price" : 18300,
"nds18" : 2792,
"sum" : 18300
},
{
"quantity" : 1,
"name" : "Джонсонс Бэби 300мл. Шампунь-пенка - От макушки до пяток 1\/12",
"price" : 23600,
"nds18" : 3600,
"sum" : 23600
},
{
"quantity" : 1,
"name" : "Фольга алюминиевая универсальная CUOCO (5м.) Арт.0526 1\/30",
"price" : 7000,
"nds18" : 1068,
"sum" : 7000
},
{
"quantity" : 1,
"name" : "Пергамент д\/выпечки 0,38*8м. Арт.1684 1\/24",
"price" : 8100,
"nds18" : 1236,
"sum" : 8100
},
{
"quantity" : 1,
"name" : "Аура 120шт. Ватные диски - Beauty 1\/35 Арт.6535",
"price" : 7600,
"nds18" : 1159,
"sum" : 7600
},
{
"quantity" : 1,
"name" : "Феерика Шары 6шт цв. Disney \"ВИННИ ПУХ И ЕГО ДРУЗЯ\" 2-ст. печа",
"price" : 9600,
"nds18" : 1464,
"sum" : 9600
},
{
"quantity" : 1,
"name" : "Горшок \"Малышок\" детский, с\/кр 1\/10 Арт.М1325\/М1324\/М1527",
"price" : 9200,
"nds18" : 1403,
"sum" : 9200
},
{
"quantity" : 2,
"name" : "Феерика Шары флуоресцентные 10шт 25см цветные, латекс 1\/25 Арт",
"price" : 7100,
"nds18" : 2166,
"sum" : 14200
},
{
"quantity" : 1,
"name" : "Щетка-утюжок \"Пиза\" 1\/40 Арт.MPG1594",
"price" : 5700,
"nds18" : 869,
"sum" : 5700
},
{
"quantity" : 1,
"name" : "Щетка-утюжок \"Софтэль\" в ассорт. 1\/32 Арт.SV3080",
"price" : 12400,
"nds18" : 1892,
"sum" : 12400
},
{
"quantity" : 1,
"sum" : 1400,
"price" : 1400,
"name" : "Набор резинок д\/волос 2шт детские 1\/10\/120 Арт.FM-50",
"nds10" : 127
},
{
"quantity" : 1,
"name" : "Краб для волос 2,3см \"Звёздный путь\" бабочка 1\/6 Арт.2975977",
"price" : 6800,
"nds18" : 1037,
"sum" : 6800
},
{
"quantity" : 1,
"name" : "Ободок д\/волос с узорами, в ассорт. 1\/12 Арт.FM-19",
"price" : 12800,
"nds18" : 1953,
"sum" : 12800
},
{
"quantity" : 1,
"name" : "Мистер Мускул 500мл. для мытья стёкол смен.блок - С нашатырным",
"price" : 15200,
"nds18" : 2319,
"sum" : 15200
},
{
"quantity" : 1,
"name" : "РОКС 94гр. Зубная паста - Активный Кальций 1\/9\/54",
"price" : 23200,
"nds18" : 3539,
"sum" : 23200
},
{
"quantity" : 1,
"name" : "Лакалют 50мл. з\/паста Флора 1\/24 Арт.6122",
"price" : 22800,
"nds18" : 3478,
"sum" : 22800
},
{
"quantity" : 3,
"name" : "Salfeti 10шт. влажные салфетки Аgua 1\/28\/168 Арт.48401",
"price" : 2233,
"nds18" : 1022,
"sum" : 6699
},
{
"quantity" : 1,
"name" : "Краска-эмульсия д\/бровей и ресниц 12мл \"Сделай глазки\" - Черны",
"price" : 3800,
"nds18" : 580,
"sum" : 3800
},
{
"quantity" : 1,
"name" : "Губка 110*70*39мм \"KINGFISHER\" композит универс. 1\/70 Арт.SW-S",
"price" : 2600,
"nds18" : 397,
"sum" : 2600
},
{
"quantity" : 1,
"name" : "Celesta Safari Губки профильные универс. 2шт. 1\/35 Арт.367",
"price" : 4000,
"nds18" : 610,
"sum" : 4000
},
{
"quantity" : 1,
"name" : "Пилочка \"SOLAmio\" золотое Арт.F124",
"price" : 4600,
"nds18" : 702,
"sum" : 4600
},
{
"quantity" : 1,
"name" : "Феерика Шары фигурные Сердце красные 38см*4шт. 1\/25 Арт.Ф-522",
"price" : 9200,
"nds18" : 1403,
"sum" : 9200
},
{
"quantity" : 1,
"name" : "Грызунов нет 100гр. Крысид-приманка (зерно) 1\/70",
"price" : 2500,
"nds18" : 381,
"sum" : 2500
},
{
"quantity" : 1,
"name" : "Грызунофф 100гр Тесто брикет 1\/40 Арт.GR010050021",
"price" : 5200,
"nds18" : 793,
"sum" : 5200
},
{
"quantity" : 1,
"name" : "Грызунов нет 100гр. Зерноцин-НЕО (гранулы) 1\/70",
"price" : 2800,
"nds18" : 427,
"sum" : 2800
}
],
"rawData" : "pQMBEJmHEgABAQkohAEMyIwIr0cWAQvzAAIPmwMAlw8RBBAAODcxMjAwMDEwMTA5Mjg4NA0EFAAwMDAxNTYxMTc2MDY1NDgxICAgIPoDDAAxNDM1Mjg1NTMwICAQBAQAyAwBAPQDBACkhqZbNQQGADEEHL12UQ4EBAAfAQAAEgQEANUAAAAeBAEAAfwDAwB8oxIjBDcABgQXAIvu4eLgoCAxLzEggODiLjgzMDY5gi05NwQDAOGBB\/8DAwAD6AMTBAMA4YEHTgQDACslASMEXQAGBD4AUGFsbUJhYnkgNDTo4iDgLkwgKDktMTSqoykgj66ko+OnraiqqC3i4OPhqKqoIKSl4uGqqKUgMS80LCAxLzY3BAMAuDcB\/wMDAAPQBxMEAwBwbwJPBAIArTgjBF0ABgQ+AJ2roOCgIIqopOEgNDTo4iDgLkwgj66ko+OnraiqqC3i4OPhqKqoIKSl4uGqqKUgk6vs4uCg4q6tqqilIDEvNwQDAPA2Af8DAwAD6AMTBAMA8DYBTgQCAG4vIwRJAAYELABPTU8gUkVEIDEsNqsgg6Wr7CCkq+8g4eKo4KqoICis76Mu46+gqi4pIDEvNjcEAgAQcv8DAwAD0AcTBAIAIOROBAIAzCIjBEQABgQnAIOrruCoquEgMasuIOHgpaQuIKQvr66roCAtIIugoqCtpKAgMS8xMjcEAgDwPP8DAwAD6AMTBAIA8DxOBAIATAkjBEgABgQrAJGo5CCAquKooiAyNTCsqy4gl6jh4u\/pqKkgquClrCAtIIuorK6tIDEvMjQ3BAIAgCX\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\/AwMAA+gDEwQCAPAKTgQCAKsB\/QMdAIXgrumlraquII6q4aCtoCCAq6Wq4aCtpOCuoq2gBwQBAAA5BAMAfKMSTgQDAOt3Ak8EAgAsORgEEACOjo4gIpKuryCQqOKlqasi8QMtADY3NzAwMCyQkSifKSyjLp+q4+Lhqizjqy6XpeCt6+ilouGqrqOuLKQuMTA3Lh8EAQAB",
"ecashTotalSum" : 1221500,
"retailPlaceAddress" : "
"shiftNumber" : 287,
"nds18" : 161771,
"kktRegId" : "0001561176065481",
"fiscalDriveNumber" : "8712000101092884",
"requestNumber" : 213,
"dateTime" : "2018-09-22T18:15:00",
"fiscalSign" : 482178641,
"user" : "ООО \"Топ Ритейл\"",
"cashTotalSum" : 0,
"receiptCode" : 3,
"fiscalDocumentNumber" : 68808,
"operationType" : 1,
"taxationType" : 1,
"nds10" : 14636
}
}
}

2-й
{
"document" : {
"receipt" : {
"totalSum" : 230645,
"userInn" : "2724187340",
"operator" : "02Кассир 01 ",
"items" : [
{
"quantity" : 1,
"name" : "Ананасы кусочки ж\/б \"Любимый Бегемот\"\/850гр",
"price" : 10150,
"nds18" : 0,
"sum" : 10150
},
{
"quantity" : 1,
"name" : "Ананасы кусочки в сиропе, 850 мл",
"price" : 7400,
"nds18" : 0,
"sum" : 7400
},
{
"quantity" : 3,
"sum" : 8100,
"price" : 2700,
"name" : "ФН Малышам 0,33 л Нектар яблочно персиковый неосветленны",
"nds10" : 0
},
{
"quantity" : 1,
"name" : "Лейс чипсы 225 гр",
"price" : 11600,
"nds18" : 0,
"sum" : 11600
},
{
"quantity" : 2,
"sum" : 5200,
"price" : 2600,
"name" : "ФН Малышам 0,33 л Нектар из яблок, абрикосов и апельсино",
"nds10" : 0
},
{
"quantity" : 1,
"name" : "Кукуруза сахарная \"Белгородские овощи\" 400гр. 420мл.",
"price" : 4500,
"nds18" : 0,
"sum" : 4500
},
{
"quantity" : 1,
"name" : "Икра \"Solvita\" кабачковая 480гр ст\/б",
"price" : 5400,
"nds18" : 0,
"sum" : 5400
},
{
"quantity" : 1,
"sum" : 4100,
"price" : 4100,
"name" : "Сухарики ржано пшеничные со вкусом ветчина с сыром, 300 ",
"nds10" : 0
},
{
"quantity" : 0.77200000000000002,
"name" : "Колбаса \"Краковская\"",
"price" : 25900,
"nds18" : 0,
"sum" : 19995
},
{
"quantity" : 1,
"sum" : 3800,
"price" : 3800,
"name" : "Смесь панировочная 400 гр",
"nds10" : 0
},
{
"quantity" : 1,
"sum" : 9200,
"price" : 9200,
"name" : "\"Любимый\" Апельсин\/манго\/мандарин Напиток, 1.93л",
"nds10" : 0
},
{
"quantity" : 2,
"sum" : 5400,
"price" : 2700,
"name" : "ФН Малышам 0,33 л Сок яблочный осветленный",
"nds10" : 0
},
{
"quantity" : 1,
"name" : "Приправа для Шашлыка дой пак 200гр",
"price" : 3700,
"nds18" : 0,
"sum" : 3700
},
{
"quantity" : 1,
"sum" : 4800,
"price" : 4800,
"name" : "Пюре \"Фрутоняня\" Яблоко натуральное детское питание с\/б ",
"nds10" : 0
},
{
"quantity" : 1,
"name" : "Клубника замороженная 800 г",
"price" : 13200,
"nds18" : 0,
"sum" : 13200
},
{
"quantity" : 1,
"sum" : 9200,
"price" : 9200,
"name" : "\"Любимый\" яблоко\/персик 1,93 л.",
"nds10" : 0
},
{
"quantity" : 1,
"sum" : 9200,
"price" : 9200,
"name" : "Нектар \"Любимый\" 1,93л. Яблочный осветленный 1\/6",
"nds10" : 0
},
{
"quantity" : 2,
"name" : "Миндаль 500 гр",
"price" : 41500,
"nds18" : 0,
"sum" : 83000
},
{
"quantity" : 1,
"name" : "Финики 1 кг (фас)",
"price" : 12700,
"nds18" : 0,
"sum" : 12700
}
],
"rawData" : "AwC5BhEEEAA5Mjg2MDAwMTAwMTU0OTY1DQQUADAwMDA1ODQ1NjYwMTkyMTYgICAg+gMMADI3MjQxODczNDAgIBAEBACiXwAA9AMEAGwwy1s1BAYAMQSp95z9DgQEAHUAAAASBAQAMgAAAB4EAQAB\/AMDAPWEA\/0DDAAwMoqg4eGo4CAwMSAjBFEABgQrAICtoK2g4esgquPhrueqqCCmL6EgIovuoais66kggaWjpayu4iIvODUwo+A3BAIApif\/AwMAA+gDTgQBAAC8BAEAAb4EAQAEEwQCAKYnIwRGAAYEIACAraCtoOHrIKrj4a7nqqggoiDhqOCur6UsIDg1MCCsqzcEAgDoHP8DAwAD6ANOBAEAALwEAQABvgQBAAQTBAIA6BwjBF4ABgQ4AJSNIIygq+vooKwgMCwzMyCrII2lquKg4CDvoauu562uIK+l4OGoqq6i66kgraWu4aKl4qulra3rNwQCAIwK\/wMDAAO4C08EAQAAvAQBAAG+BAEABBMEAgCkHyMENwAGBBEAi6Wp4SDnqK\/h6yAyMjUgo+A3BAIAUC3\/AwMAA+gDTgQBAAC8BAEAAb4EAQAEEwQCAFAtIwReAAYEOACUjSCMoKvr6KCsIDAsMzMgqyCNparioOAgqKcg76GrrqosIKCh4KiqruGuoiCoIKCvpavs4aitrjcEAgAoCv8DAwAD0AdPBAEAALwEAQABvgQBAAQTBAIAUBQjBFoABgQ0AIrjquPg46egIOGg5aDgraDvICKBpaujruCupOGqqKUgrqKu6agiIDQwMKPgLiA0MjCsqy43BAIAlBH\/AwMAA+gDTgQBAAC8BAEAAb4EAQAEEwQCAJQRIwRKAAYEJACIquCgICJTb2x2aXRhIiCqoKGg56quoqDvIDQ4MKPgIOHiL6E3BAIAGBX\/AwMAA+gDTgQBAAC8BAEAAb4EAQAEEwQCABgVIwReAAYEOACR4+Wg4KiqqCDgpqCtriCv6KWtqOet66Ug4a4goqrj4a6sIKKl4ueoraAg4SDh6+CurCwgMzAwIDcEAgAEEP8DAwAD6ANPBAEAALwEAQABvgQBAAQTBAIABBAjBDoABgQUAIquq6Gg4aAgIorgoKquouGqoO8iNwQCACxl\/wMDAAMEA04EAQAAvAQBAAG+BAEABBMEAgAbTiMEPwAGBBkAkayl4ewgr6CtqOCuoq7nraDvIDQwMCCj4DcEAgDYDv8DAwAD6ANPBAEAALwEAQABvgQBAAQTBAIA2A4jBFYABgQwACKL7qGorOupIiCAr6Wr7OGorS+soK2jri+soK2koOCorSCNoK+o4q6qLCAxLjkzqzcEAgDwI\/8DAwAD6ANPBAEAALwEAQABvgQBAAQTBAIA8CMjBFAABgQqAJSNIIygq+vooKwgMCwzMyCrIJGuqiDvoauu563rqSCu4aKl4qulra3rqTcEAgCMCv8DAwAD0AdPBAEAALwEAQABvgQBAAQTBAIAGBUjBEgABgQiAI\/gqK\/goKKgIKSr7yCYoOir66qgIKSuqSCvoKogMjAwo+A3BAIAdA7\/AwMAA+gDTgQBAAC8BAEAAb4EAQAEEwQCAHQOIwReAAYEOACP7uClICKU4OPirq3vre8iIJ+hq66qriCtoOLj4KCr7K2upSCkpeLhqq6lIK+o4qCtqKUg4S+hIDcEAgDAEv8DAwAD6ANPBAEAALwEAQABvgQBAAQTBAIAwBIjBEEABgQbAIqr46GtqKqgIKegrK7grqalra2g7yA4MDAgozcEAgCQM\/8DAwAD6ANOBAEAALwEAQABvgQBAAQTBAIAkDMjBEUABgQfACKL7qGorOupIiDvoauuqq4vr6Xg4aiqIDEsOTMgqy43BAIA8CP\/AwMAA+gDTwQBAAC8BAEAAb4EAQAEEwQCAPAjIwRWAAYEMACNparioOAgIovuoais66kiIDEsOTOrLiCfoauu563rqSCu4aKl4qulra3rqSAxLzY3BAIA8CP\/AwMAA+gDTwQBAAC8BAEAAb4EAQAEEwQCAPAjIwQ1AAYEDgCMqK2koKvsIDUwMCCj4DcEAgAcov8DAwAD0AdOBAEAALwEAQABvgQBAAQTBAMAOEQBIwQ3AAYEEQCUqK2oqqggMSCqoyAo5KDhKTcEAgCcMf8DAwAD6ANOBAEAALwEAQABvgQBAAQTBAIAnDFOBAIARmZPBAIA8hQYBBIAkq7go+Gl4KKo4SAyNywgjo6OHwQBAAEkBAwAd3d3Lm5hbG9nLnJ1BwQDAPWEAzkEAQAAvwQBAADABAEAAMEEAQAA",
"ecashTotalSum" : 0,
"addressToCheckFiscalSign" : "",
"retailPlaceAddress" : "",
"shiftNumber" : 117,
"kktRegId" : "0000584566019216",
"dateTime" : "2018-10-20T13:41:00",
"requestNumber" : 50,
"nds18" : 26182,
"fiscalDriveNumber" : "9286000100154965",
"buyerAddress" : "",
"fiscalSign" : 2851577085,
"senderAddress" : "",
"user" : "Торгсервис 27, ООО",
"cashTotalSum" : 230645,
"receiptCode" : 3,
"fiscalDocumentNumber" : 24482,
"operationType" : 1,
"taxationType" : 1,
"nds10" : 5362
}
}
}

Примечания: p.s для проверки работы программы создать Extras\_Excel1.xlsx
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Если попадается файл с покупкой этого же месяца его надо дописать в существующий лист...
хорошо бы и пример такого файла, что-бы самому не изобретать.
 
Автор
M

Maggot_515

Новичок
Сообщения
11
Репутация
0
Вот еще за Октябрь. Если есть возможность надо избавиться от добавления повторных записей т.е если txt файл с таким же содержанием но с другим именем попадется в дальнейшем то запись не будет производится в таблицу Excel. (но это не критично)
{
"document" : {
"receipt" : {
"shiftNumber" : 117,
"fiscalDriveNumber" : "9281000100246669",
"operationType" : 1,
"kktRegId" : "0002088324056980 ",
"userInn" : "143500343200",
"taxationType" : 8,
"totalSum" : 130000,
"cashTotalSum" : 130000,
"rawData" : "\/\/8AHKUDARAJkoEAAQAkZmkAF8prnACdUgAXvAACAagDAKQBEQQQADkyODEwMDAxMDAyNDY2NjkNBBQAMDAwMjA4ODMyNDA1Njk4MCAgICD6AwwAMTQzNTAwMzQzMjAwEAQEAMoXAAD0AwQA8ADCWzUEBgAxBHgOsfoOBAQAdQAAABIEBAAOAAAAHgQBAAH8AwMA0PsBIwRRAAYEJQCYqOCuqqDvIKuur6DiqqAgU0RTLXBsdXMgNDAqMjUwIKysIOjiNwQDAGBnAf8DAgAAARMEAwBgZwGvBAEABrAEAQAAvAQBAAG+BAEABCMEVAAGBCoAQk9TQ0ggh+OhqKuuIK+rruGqrqUgU0RTIFBsdXMgMjUwrKwgRUNPIOjiNwQCAGhC\/wMCAAABEwQCAGhCrwQBAAawBAEAALwEAQABvgQBAAQjBE0ABgQjAE1ha2l0YSAghK6rruKuIFNEUysgICCvqKqgIDI1MKysIOjiNwQCAAhS\/wMCAAABEwQCAAhSrwQBAAawBAEAALwEAQABvgQBAAQHBAMA0PsBOQQBAAC\/BAEAAMAEAQAAwQQBAAD9AwQAj6CiMR8EAQAIuQQBAAJRBAMA0PsBgQZsK1aFU+4=",
"fiscalSign" : 2014228986,
"receiptCode" : 3,
"fiscalDocumentNumber" : 6090,
"operator" : "Пав1",
"ecashTotalSum" : 0,
"items" : [
{
"quantity" : 1,
"name" : "Широкая лопатка SDS-plus 40*250 мм шт",
"price" : 92000,
"sum" : 92000
},
{
"quantity" : 1,
"name" : "BOSCH Зубило плоское SDS Plus 250мм ECO шт",
"price" : 17000,
"sum" : 17000
},
{
"quantity" : 1,
"name" : "Makita Долото SDS+ пика 250мм шт",
"price" : 21000,
"sum" : 21000
}
],
"user" : "",
"dateTime" : "2018-10-13T14:28:00",
"requestNumber" : 14
}
}
}
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Чуть доработал ваш скрипт, так ?
Код:
#include <Excel.au3>
#include <File.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <Date.au3>



$pattern = '(?i).*?\Q"dateTime" : "\E(.+?)".*' ; Дата чека
$pattern1 = '(?i).*?\Q"name" : "\E(.+?)",.*' ;Наименование
$pattern1_ = '(?i).*?\Q"name": "\E(.+?)",.*' ;Наименование_
$pattern2 = '(?i).*?\Q"quantity" : \E(.+?)\D\s.*?' ;Колличество
$pattern2_ = '(?i).*?\Q"quantity": \E(.+?)\D\s.*?' ;Колличество_
$pattern3 = '(?i).*?\Q"price" : \E(.+?)\D\s.*?' ;Цена
$pattern3_ = '(?i).*?\Q"price": \E(.+?)\D\s.*?' ;Цена_
$pattern4 = '(?i).*?\Q"sum" : \E(.+?)\D\s.*?' ;Сумма
$pattern4_ = '(?i).*?\Q"sum": \E(.+?)\D\s.*?' ;Сумма_

Local $aArray = _FileListToArrayRec(@ScriptDir, "*.txt", $FLTAR_RECUR, $FLTAR_SORT) ; $FLTAR_RECUR (1) - Search in all subfolders (unlimited recursion) $FLTAR_SORT - сортировка без нее не работает

;_ArrayDisplay($aArray, "Sorted tree", 32)

For $i = 1 To $aArray[0]
	$sArray = $aArray[$i]
	$hFile = FileOpen($sArray, 0)
	$sText = FileRead($hFile)
	FileClose($hFile)

	$aRes = StringRegExp($sText, $pattern, 1) ; флаг=3, возвращает все найденные группы
	$s = _ArrayToString($aRes)
	$DataTime = StringRegExpReplace($s, '(\d{4})-(\d{2})-(\d{2})T', ' $3.$2.$1 ')
	$Mounth = StringRegExpReplace($s, '(\d{4})-(\d{2})-(\d{2})T.*', '$2')
	$sLongMonthName = _DateToMonth($Mounth)

	;MsgBox(4096, "$DataTime", $DataTime)

	;MsgBox(4096, "$Mounth", $sLongMonthName)

	$avArraySource1 = 'НАИМЕНОВАНИЕ'
	$aRes1 = StringRegExp($sText, $pattern1, 3) ; флаг=3, возвращает все найденные группы
	If @error Then $aRes1 = StringRegExp($sText, $pattern1_, 3) ; флаг=3, возвращает все найденные группы
	_ArrayInsert($aRes1, 0, $avArraySource1)


	;_ArrayDisplay($aRes1, "$aRes1") ; функция для просмотра массива



	$avArraySource2 = 'КОЛ-ВО'
	$aRes2 = StringRegExp($sText, $pattern2, 3) ; флаг=3, возвращает все найденные группы
	If @error Then $aRes2 = StringRegExp($sText, $pattern2_, 3) ; флаг=3, возвращает все найденные группы
	_ArrayInsert($aRes2, 0, $avArraySource2)


	;_ArrayDisplay($aRes2, "$aRes2") ; функция для просмотра массива



	$avArraySource3 = 'ЦЕНА'
	$aRes3 = StringRegExp($sText, $pattern3, 3) ; флаг=3, возвращает все найденные группы
	_ArrayInsert($aRes3, 0, $avArraySource3)

	;_ArrayDisplay($aRes3, "$aRes3") ; функция для просмотра массива

	$avArraySource4 = 'СУММА'
	;$avArraySource4_ = '=СУММ(E4:E46)'
	$aRes4 = StringRegExp($sText, $pattern4, 3) ; флаг=3, возвращает все найденные группы
	If @error Then $aRes4 = StringRegExp($sText, $pattern4_, 3)
	_ArrayInsert($aRes4, 0, $avArraySource4)
	_ArrayAdd($aRes4, $avArraySource4_)


	;_ArrayDisplay($aRes4, "$aRes4") ; функция для просмотра массива


	; Create application object and open an example workbook
	Local $oExcel = _Excel_Open()
	If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
	Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xlsx")
	If @error Then
		MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example", "Error opening workbook '" & @ScriptDir & "\_Extras\Excel1.xlsx'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
		_Excel_Close($oExcel)
		Exit
	EndIf
	Sleep(100)

	Local $Kolumn
	$aList = _Excel_SheetList($oWorkbook)

	If _ArraySearch($aList, $sLongMonthName, Default, Default, Default, Default, Default, 0) < 0 Then
		$Kolumn = 2
		_Excel_SheetAdd($oWorkbook, -1, False, 1, $sLongMonthName)
		If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example 1", "Error adding sheets." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
		;MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_SheetAdd Example 1", "Two sheets added after the last one.")
	Else
		$oExcel.ActiveWorkbook.Sheets($sLongMonthName).Select()
		$sLastCell = $oExcel.Application.Selection.SpecialCells($xlCellTypeLastCell).Address(True, True, $xlR1C1)
		$sLastCell = StringRegExp($sLastCell, "\A[^0-9]*(\d+)[^0-9]*(\d+)\Z", 3)
		$Kolumn = $sLastCell[1] + 3
	EndIf
	Sleep(100)

	For $j = 1 To UBound($aRes3) - 1
		$aRes3[$j] = $aRes3[$j] / 100
	Next

	For $j = 1 To UBound($aRes4) - 1
		$aRes4[$j] = $aRes4[$j] / 100

	Next

	_Excel_RangeWrite($oWorkbook, $sLongMonthName, $aRes1, _Excel_ColumnToLetter($Kolumn) & "3")
	_Excel_RangeWrite($oWorkbook, $sLongMonthName, $aRes2, _Excel_ColumnToLetter($Kolumn + 1) & "3")
	_Excel_RangeWrite($oWorkbook, $sLongMonthName, $aRes3, _Excel_ColumnToLetter($Kolumn + 2) & "3")
	_Excel_RangeWrite($oWorkbook, $sLongMonthName, $aRes4, _Excel_ColumnToLetter($Kolumn + 3) & "3")
	$Formula = '=СУММ(' & _Excel_ColumnToLetter($Kolumn + 3) & '4:' & _Excel_ColumnToLetter($Kolumn + 3) & UBound($aRes4) + 1 & ')'
	_Excel_RangeWrite($oWorkbook, $sLongMonthName, $Formula, _Excel_ColumnToLetter($Kolumn + 3) & UBound($aRes4) + 2, False)
	Sleep(100)
	_Excel_BookSave($oWorkbook)

Next
 
Автор
M

Maggot_515

Новичок
Сообщения
11
Репутация
0
Спасибо :beer: Ваш скрипт сходу не запустился , но идею понял исправил то что надо было. Все работает на ура. :rofl: По оформлению Excel "пните" в нужном направлении. Надо смаштабировать столбец с Наименованием, сделать жирным шрифтом заголовки, сделать границы таблицы черными, там где сумма сделать шрифт красным.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
По оформлению Excel "пните" в нужном направлении.
Смотрите в сторону СОМ объекта Excel , например:
Код:
$oExc.Range('A1:G8' ).Borders.LineStyle = 1 ;Стиль таблицы - сплошная линия
$oExc.Columns('A:G').EntireColumn.AutoFit ;Автоподбор ширины колонок A-G
итд

по поводу цвета посмотрите :http://autoit-script.ru/index.php?topic=22502.msg131370#msg131370
 
Верх