Страницы: 1 2 След.
RSS
Как выгрузить из огромного файла HTML данные в Power Qwery
 
Выгрузил из R-Keeper (программа в ресторанах)  данные в HTML - и не могу их выгрузить в PQ так как ноут ругается что эта ноша не по его ресурсам. Подскажите что делать (менять ноут - не вариант)?
 
насколько огромный файл-то?
F1 творит чудеса
 
14 файлов от 101 000 до 15 000 КБ

Я даже один маленький не могу обработать Power Qwerry. Если копирую вручную то он в последних строках съедает часть ячеек при вставке в эксель
Изменено: mitox - 28.03.2020 00:47:41
 
странно. возможно, там формат html, который чем-то не нравится PQ. А просто Excel эти файлы открываются? попробуйте, может быть, их получится пересохранить
F1 творит чудеса
 
Максим Зеленский, Он открывает но последние строки начинает частично подедать, удаляя ячейки и смещая оставшиеся влево...  
 
Эксель 64бит?
Вот горшок пустой, он предмет простой...
 
PooHkrd, Да. Проверил.

Помогите пожалуйста. Нашел макрос обработчик HTML в Excel но там та же проблема со съеданием данных (пустые ячейки).
Также где то прочитал про "граббинг" - но не понимаю как это делать.
Изменено: mitox - 28.03.2020 20:15:00
 
Цитата
mitox написал:
Выгрузил из R-Keeper (программа в ресторанах)  данные в HTML
А эта программка только в HTML выгружает?
Ссылку на один Html с облака можете дать? например, 153p.html
 
Михаил Л, Нет, она также выгружает и в Эксель , но с той же проблемой: в самом конце съедает первые пустые ячейки в строке. Как вариант конечно скачивать мелкими партиями, но я уже выгрузил в HTML (и в нем нет такой проблемы).
Изменено: mitox - 28.03.2020 20:14:34
 
mitox, а в банальный  txt/csv умеет выгружать?
Вот горшок пустой, он предмет простой...
 
PooHkrd, Нет. Только Excel, HTML
 
Цитата
mitox написал:
данных (пустые ячейки).
если в выгруженных файлах всегда одно и то же количество столбцов в таблицах, и "съедаются" только пустые ячейки слева (но не посередине), то, может быть, выровнять данные по правому краю? Сымитировав таким образом пустые ячейки.
Ну вообще даже без самого маленького образца данных сложно дать совет - слишком широк может быть спектр проблем и решений
Оффтоп
F1 творит чудеса
 
Цитата
Михаил Л написал:
дать? например, 153p.html
?

mitox, если у вас клавиатура без твердого знака, то чтобы поставить твёрдый знак нужно зажать SHIFT+ нажать на клавишу, выделенную на картинке
Изменено: Михаил Л - 28.03.2020 20:12:33
 
Михаил Л, https://cloud.mail.ru/public/3Xon/4YJ624EPi
 
Максим Зеленский,
Цитата
Максим Зеленский написал:
то, может быть, выровнять данные по правому краю?
Это самый крайний вариант для меня (долго открываются файлы). Я предполагаю что есть вариант когда можно вскрыть HTML (как например у файла сменить расширение xlsx на rar и получить доступ к папкам). Такой способ с HTML, как я понял из инета, называет "граббинг". Конечно могу ошибаться.

Ссылку на файл выложил.

Теперь у меня все "сЪедает"))))
 
У меня прочиталось, хоть и долго читалось. Думаю, долгое чтение в основном из-за того, что в таблице некоторые ячейки имеют довольно большой ROWSPAN, и PQ преобразовывает его в плоский вид, заполняя строки для таких ячеек.
Так что совет - бейте на маленькие файлы - по месяцу, или еще мельче - насколько это будет съедаемо PQ/

Специально перевернул таблицу - ничего в конце не съедается:
F1 творит чудеса
 
А вообще если не справляется PQ, попробуйте EasyMorph, например, преобразовать эту html в csv, я думаю, для него не проблема, он побыстрее будет
F1 творит чудеса
 
Максим Зеленский, я вам легкий файл выложил - он и у меня нормально выгружается, А вот те что тяжелее там вот и беда со съеданием. Про мелкие партии - у меня база данных по 7 годам и трем предприятиям ))) на удаленном сервере ))) Это самый крайний способ.

В любом случае спасибо - если не получилось, значит буду скачивать данные мелкими партиями... Потом множество файлов переводить в эксель, чтоб потом затянуть в PQ?!  :cry:  
 
Цитата
mitox написал:
я вам легкий файл выложил - он и у меня нормально выгружается, А вот те что тяжелее там вот и беда со съеданием
раз такое дело, то с облака, если не трудно, выложите и 190220p.html  
 
Михаил Л, Я не все могу выкладывать. Думаю что тему стоит закрывать. Спасибо.
 
Цитата
mitox написал:
легкий файл выложил
На легкий файл(14 мб) минута уходит, на 100 мб - минут восемь наверное
Код
// папка
let
   fn= (_)=>
   let
    a=Table.RemoveLastN(Table.FromColumns({Lines.FromBinary(_)}),3),
    Custom4 = Table.Skip( Table.Group(a, {"Column1"}, {{"All", each _[Column1]}}, 0, (a,b)=> Number.From( b[Column1] = "      <TR>" ) ),3),
    add = Table.FromRows(Table.AddColumn(Custom4, "a", each [
    b = List.ReplaceValue(List.RemoveLastN(List.Skip(List.Transform([All],each Text.BetweenDelimiters(_, "NOWRAP>", "</TD>"))))," ","", Replacer.ReplaceText),
    c = List.Repeat({null},18-List.NonNullCount(b))&b][c])[a]),
    #"Replaced Value" = Table.ReplaceValue(add,""","",Replacer.ReplaceText,{"Column13"}),
    #"Filled Down" = Table.FillDown(#"Replaced Value",{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12"}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Filled Down", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{" Дата ", type date}, {" Кол-во ", type number}, {" Ср цена ", type number}, {" Сумма ", type number}, {" Сумма По Оплате ", type number}, {" Скидка ", type text}})
  in
    #"Changed Type", 
   Source = Folder.Files("D:\папка"),
    Custom2 = List.Transform(Source[Content],fn),
    Custom1 = Table.Combine(Custom2)
in
    Custom1
 
Спасибо. А как эту строку понять?
Код
// папка
Я попробовал через Folder.Files("C:\Users\User\Desktop\Новая папка") - не получается
Изменено: mitox - 29.03.2020 08:54:25
 
Михаил Л, Сломал голову )) про путь к папке
 
Source = Folder.Files("C:\Users\User\Desktop\Новая папка"),

Вы, что, собираетесь использовать этот запрос?
Я его просто выложил
 
Михаил Л, Если я и предложил закрыть тему, так это из уважения к тем кто помогает. Если что то появилось - то почему бы не попробовать. Если считаете что пробовать не нужно - хорошо, не буду.

Михаил Л,  Кого я обманываю. Сижу разбираю - он все равно не работает.
Изменено: mitox - 29.03.2020 10:01:27
 
Цитата
mitox написал:
Если я и предложил закрыть тему, так это из уважения к тем кто помогает. Если что то появилось - то почему бы не попробовать. Если считаете что пробовать не нужно - хорошо, не буду. Кого я обманываю. Сижу разбираю - он все равно не работает.
Нифига я не понял
Если не работает, то это у вас не работает
Попробуйте запрос для отдельного файла. Если не работает, то на каком шаге?
Попробуйте удалить -  , [PromoteAllScalars=true]
Код
let
    a=Table.FromColumns({Lines.FromBinary(File.Contents("D:\папка/15p.html"))}),
    Custom4 = Table.Skip( Table.Group(Table.RemoveLastN(a,3), {"Column1"}, {{"All", each _[Column1]}}, 0, (a,b)=> Number.From( b[Column1] = "      <TR>" ) ),3),
    add = Table.FromRows(Table.AddColumn(Custom4, "a", each [
    b = List.ReplaceValue(List.RemoveLastN(List.Skip(List.Transform([All],each Text.BetweenDelimiters(_, "NOWRAP>", "</TD>"))))," ","", Replacer.ReplaceText),
    c = List.Repeat({null},18-List.NonNullCount(b))&b][c])[a]),
    #"Replaced Value" = Table.ReplaceValue(add,""","",Replacer.ReplaceText,{"Column13"}),
    #"Filled Down" = Table.FillDown(#"Replaced Value",{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12"}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Filled Down", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{" Дата ", type date}, {" Кол-во ", type number}, {" Ср цена ", type number}, {" Сумма ", type number}, {" Сумма По Оплате ", type number}, {" Скидка ", type text}})
in
    #"Changed Type"
 
Михаил Л,  подсвечивал в расширенном редакторе ошибку на строке 10 на "Column13". Счаз еще раз попробую
Изменено: mitox - 29.03.2020 10:22:43
 
Цитата
mitox написал:
ошибку на строке 10 на "Column13".
Удалите этот шаг. Попробуйте на отдельном файле
Код
let
    a=Table.FromColumns({Lines.FromBinary(File.Contents("D:\папка/15p.html"))}),
    Custom4 = Table.Skip( Table.Group(Table.RemoveLastN(a,3), {"Column1"}, {{"All", each _[Column1]}}, 0, (a,b)=> Number.From( b[Column1] = "      <TR>" ) ),3),
    add = Table.FromRows(Table.AddColumn(Custom4, "a", each [
    b = List.ReplaceValue(List.RemoveLastN(List.Skip(List.Transform([All],each Text.BetweenDelimiters(_, "NOWRAP>", "</TD>"))))," ","", Replacer.ReplaceText),
    c = List.Repeat({null},18-List.NonNullCount(b))&b][c])[a]),
    #"Filled Down" = Table.FillDown(add,{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12"}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Filled Down", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{" Дата ", type date}, {" Кол-во ", type number}, {" Ср цена ", type number}, {" Сумма ", type number}, {" Сумма По Оплате ", type number}, {" Скидка ", type text}})
in
    #"Changed Type"
Изменено: Михаил Л - 29.03.2020 10:35:16
 
В Excel не получается из за (Text.BetweenDelimiters - на моей версии нет этой функции), поэтому попробовал в Power BI.
Но и тут на шаге "Custom4" все пусто, на сколько я понял у меня вот эта часть "      <TR>" выглядит под другому (через табуляцию а не пробелы)
Код
let
    a=Table.FromColumns({Lines.FromBinary(File.Contents("C:\Users\User\Desktop\Новая папка/15p.html"))}),
    Custom4 = Table.Skip( Table.Group(Table.RemoveLastN(a,3), {"Column1"}, {{"All", each _[Column1]}}, 0, (a,b)=> Number.From( b[Column1] = "      <TR>" ) ),3),
    add = Table.FromRows(Table.AddColumn(Custom4, "a", each [
    b = List.ReplaceValue(List.RemoveLastN(List.Skip(List.Transform([All],each Text.BetweenDelimiters(_, "NOWRAP>", "</TD>"))))," ","", Replacer.ReplaceText),
    c = List.Repeat({null},18-List.NonNullCount(b))&b][c])[a]),
        #"Filled Down" = Table.FillDown(#"Replaced Value",{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12"}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Filled Down", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{" Дата ", type date}, {" Кол-во ", type number}, {" Ср цена ", type number}, {" Сумма ", type number}, {" Сумма По Оплате ", type number}, {" Скидка ", type text}})
in
    #"Changed Type"
Изменено: mitox - 29.03.2020 10:40:03
 
mitox, не то советую. Попробуйте так
Код
    c = List.Repeat({null},18-List.NonNullCount(b))&b][c])[a]),
    #"Filled Down" = Table.FillDown(add,{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12"}),
 
Если только такой запрос запустить - таблица собирается?
Код
let
    a=Table.FromColumns({Lines.FromBinary(File.Contents("D:\папка/15p.html"))}),
    Custom4 = Table.Skip( Table.Group(Table.RemoveLastN(a,3), {"Column1"}, {{"All", each _[Column1]}}, 0, (a,b)=> Number.From( b[Column1] = "      <TR>" ) ),3),
    add = Table.FromRows(Table.AddColumn(Custom4, "a", each [
    b = List.ReplaceValue(List.RemoveLastN(List.Skip(List.Transform([All],each Text.BetweenDelimiters(_, "NOWRAP>", "</TD>"))))," ","", Replacer.ReplaceText),
    c = List.Repeat({null},18-List.NonNullCount(b))&b][c])[a])
in
    add
Изменено: Михаил Л - 29.03.2020 10:41:05
Страницы: 1 2 След.
Наверх