может быть попробуете все таки удалить например из файлов все кроме 1-2 строк или еще как то(архивом например) приложить файл...на данный момент не очень понятно, что там не так
может быть попробуете все таки удалить например из файлов все кроме 1-2 строк или еще как то(архивом например) приложить файл...на данный момент не очень понятно, что там не такSzekerfehesvar
пробуйте такой вариант путь к папке для запроса берется из A1, при выделении этой ячейки открывается диалог для выбора папки Если в папке будут файлы .xls, запрос выдаст ошибку
[vba]
Код
let Папка = Folder.Files( Excel.CurrentWorkbook(){[Name="folder"]}[Content][Column1]{0} )[[Folder Path],[Name],[Extension],[Content]], Файлы = Table.SelectRows( Папка, each Text.StartsWith(_[Extension], ".xls") and not Text.StartsWith(_[Name], "~") ), Книги = Table.CombineColumns( Table.SelectColumns( Table.AddColumn( Файлы, "Workbook", each Table.SelectRows( Excel.Workbook([Content]), each _[Kind] = "Sheet" ) ), {"Name", "Folder Path", "Workbook"} ), {"Folder Path", "Name"}, Combiner.CombineTextByDelimiter( "", QuoteStyle.None ), "Файл" ), Листы = Table.TransformColumns( Table.ExpandTableColumn( Книги, "Workbook", {"Name", "Data"}, {"Лист","Data"} ), {"Data", Table.PromoteHeaders} ), Столбцы = Table.Distinct( Table.ExpandListColumn( Table.AddColumn( Листы, "", each Table.ColumnNames([Data]) ), "" ), {""} )[#""], Таблица = Table.ExpandTableColumn( Листы, "Data", Столбцы ) in Таблица
[/vba]
пробуйте такой вариант путь к папке для запроса берется из A1, при выделении этой ячейки открывается диалог для выбора папки Если в папке будут файлы .xls, запрос выдаст ошибку
[vba]
Код
let Папка = Folder.Files( Excel.CurrentWorkbook(){[Name="folder"]}[Content][Column1]{0} )[[Folder Path],[Name],[Extension],[Content]], Файлы = Table.SelectRows( Папка, each Text.StartsWith(_[Extension], ".xls") and not Text.StartsWith(_[Name], "~") ), Книги = Table.CombineColumns( Table.SelectColumns( Table.AddColumn( Файлы, "Workbook", each Table.SelectRows( Excel.Workbook([Content]), each _[Kind] = "Sheet" ) ), {"Name", "Folder Path", "Workbook"} ), {"Folder Path", "Name"}, Combiner.CombineTextByDelimiter( "", QuoteStyle.None ), "Файл" ), Листы = Table.TransformColumns( Table.ExpandTableColumn( Книги, "Workbook", {"Name", "Data"}, {"Лист","Data"} ), {"Data", Table.PromoteHeaders} ), Столбцы = Table.Distinct( Table.ExpandListColumn( Table.AddColumn( Листы, "", each Table.ColumnNames([Data]) ), "" ), {""} )[#""], Таблица = Table.ExpandTableColumn( Листы, "Data", Столбцы ) in Таблица
Viper25, дело в том, что XLSX - это по сути архив, содержащий определенный набор xml файлов PQ функция [vba]
Код
Binary.Combine
[/vba] (она выполняется при нажатии на кнопочку с двумя стрелками вниз) не может корректно обработать данный тип файлов, и из-за этого на следующем шаге [vba]
[/vba] вываливается ошибка Да и при формате xls не будет корректного результата Мой файл из предыдущего поста пробовали?
Viper25, дело в том, что XLSX - это по сути архив, содержащий определенный набор xml файлов PQ функция [vba]
Код
Binary.Combine
[/vba] (она выполняется при нажатии на кнопочку с двумя стрелками вниз) не может корректно обработать данный тип файлов, и из-за этого на следующем шаге [vba]
Как Вы это сделали? Не могу понять почему при стандартном создании запроса "Из папки" выдается ошибка, а в Вашем запросе, что фактически тоже "Из папки", ошибки нет.
Как Вы это сделали? Не могу понять почему при стандартном создании запроса "Из папки" выдается ошибка, а в Вашем запросе, что фактически тоже "Из папки", ошибки нет.Viper25
Сообщение отредактировал Viper25 - Четверг, 22.09.2016, 15:51
Столкнулся с тем же вопросом (поисковик выдаёт эту тему) - насколько я понял всё дело в том что это путь для добавления txt или csv файлов. При добавлении файлов Excel надо в явном виде указать что импортируемые файлы имеют эту структуру. Вместо колонки "binary" надо добавить пользовательский столбец с формулой
Столкнулся с тем же вопросом (поисковик выдаёт эту тему) - насколько я понял всё дело в том что это путь для добавления txt или csv файлов. При добавлении файлов Excel надо в явном виде указать что импортируемые файлы имеют эту структуру. Вместо колонки "binary" надо добавить пользовательский столбец с формулой
Viper25, запоздалый ответ, но пусть он будет тут. Все дело в том что когда ты указываешь папку откуда нужно взять файлы эксель, то он забирает все файлы. При этом в некторый момент, могут создавать временные файлы в этой же папке (например открыт какой то файл). И запрос автоматом забирает себе в перечень файлов и этот временный файл. Скорее всего там создавался временный файл экселя, начинается наименование файла с ~. И ввиду такого названия он автоматически становился первым в списке. Т.е. тебе нужно отфильтровать таблицу с перечнем файлов до того как эти файлы начнут считываться. Делается это в расширенном редакторе. В Power Bi есть кое какая хитрая система вспомогательных запросов, ты о них не знаешь, но они создаются автоматически и в ходе работы ссылаются на них, так вот этот автоматический запрос также придется редактировать и ставить дополнительный фильтр на исключение временных файлов.
Viper25, запоздалый ответ, но пусть он будет тут. Все дело в том что когда ты указываешь папку откуда нужно взять файлы эксель, то он забирает все файлы. При этом в некторый момент, могут создавать временные файлы в этой же папке (например открыт какой то файл). И запрос автоматом забирает себе в перечень файлов и этот временный файл. Скорее всего там создавался временный файл экселя, начинается наименование файла с ~. И ввиду такого названия он автоматически становился первым в списке. Т.е. тебе нужно отфильтровать таблицу с перечнем файлов до того как эти файлы начнут считываться. Делается это в расширенном редакторе. В Power Bi есть кое какая хитрая система вспомогательных запросов, ты о них не знаешь, но они создаются автоматически и в ходе работы ссылаются на них, так вот этот автоматический запрос также придется редактировать и ставить дополнительный фильтр на исключение временных файлов.telnoff
Здравствуйте! Помогите с такой проблемой, при создании запроса из папки, не выводит окно с навигатором, при этом загружает только один файл, т.е. в дальнейшем нет возможности соединить данные всех файлов в одну таблицу. Данный компьютер корпоративный и что либо самостоятельно переустановить невозможно. На домашнем экспериментировал, все получается. Офис установлен на корпоративном и домашнем 2016. При обращении к ИТ специалистам, говорят что Power Qwery установлен корректно, нужно где то отжать какую-нибудь галочку, но при это они не компетентны в данной программе. Где находится эта галочка или как сделать настройку, что бы выдавало окно Навигатор?
Здравствуйте! Помогите с такой проблемой, при создании запроса из папки, не выводит окно с навигатором, при этом загружает только один файл, т.е. в дальнейшем нет возможности соединить данные всех файлов в одну таблицу. Данный компьютер корпоративный и что либо самостоятельно переустановить невозможно. На домашнем экспериментировал, все получается. Офис установлен на корпоративном и домашнем 2016. При обращении к ИТ специалистам, говорят что Power Qwery установлен корректно, нужно где то отжать какую-нибудь галочку, но при это они не компетентны в данной программе. Где находится эта галочка или как сделать настройку, что бы выдавало окно Навигатор?Max_828898
telnoff, добрый день. Вопрос по фильтрации таблицы до того как файлы начнут считываться , по прежнему актуален. Пробовал ставить фильтр на строки с именами файлов такого типа: "не начинается с ~" или "не начинается с $". В расширенном редакторе это преобразуется в такую строку:
#"Строки с примененным фильтром2" = Table.SelectRows(Источник, each not Text.StartsWith([Name], "~") or not Text.StartsWith([Name], "$")),
Не помогает. Применение фильтра по условию (не начинается на "~$") результат не дает. Возможно, фильтр работает только для тех файлов, которые видны в Источнике, а временные файлы, возможно, там не видны.. Поэтому если один из файлов в папке открыт кем то, то при обновлении запроса все равно возникает ошибка, что временный файл (~) "используется другим процессом".
Поковырялся денек и, кажется, разобрался. Все делал правильно, но не учел, что PQ сильно чувствителен к последовательности действий: сначала нужно данные загрузить, преобразовать, потом поставить необходимые фильтры на имена файлов, расширения (если требуется) и только потом объединять. В случае, если сначала файлы объединили, а уже потом пробуете установить фильтры или даже копировать готовый код в расширенный редактор - будет выдавать ошибку. Век живи - век учись.
telnoff, добрый день. Вопрос по фильтрации таблицы до того как файлы начнут считываться , по прежнему актуален. Пробовал ставить фильтр на строки с именами файлов такого типа: "не начинается с ~" или "не начинается с $". В расширенном редакторе это преобразуется в такую строку:
#"Строки с примененным фильтром2" = Table.SelectRows(Источник, each not Text.StartsWith([Name], "~") or not Text.StartsWith([Name], "$")),
Не помогает. Применение фильтра по условию (не начинается на "~$") результат не дает. Возможно, фильтр работает только для тех файлов, которые видны в Источнике, а временные файлы, возможно, там не видны.. Поэтому если один из файлов в папке открыт кем то, то при обновлении запроса все равно возникает ошибка, что временный файл (~) "используется другим процессом".
Поковырялся денек и, кажется, разобрался. Все делал правильно, но не учел, что PQ сильно чувствителен к последовательности действий: сначала нужно данные загрузить, преобразовать, потом поставить необходимые фильтры на имена файлов, расширения (если требуется) и только потом объединять. В случае, если сначала файлы объединили, а уже потом пробуете установить фильтры или даже копировать готовый код в расширенный редактор - будет выдавать ошибку. Век живи - век учись.Sergey_R
Сообщение отредактировал Sergey_R - Пятница, 19.04.2024, 20:39