Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2018, 01:14   #1
Onehunter
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 51
По умолчанию Экспорт структуры данных (названий) в файловый Проводник

Существует немало решений, как осуществить Импорт файловой (папочной) структуры Проводника на Эксель-лист.
примеры для:
ASAP Utilities - https://www.asap-utilities.com/asap-...ilities=Import
Kutools for Excel - https://www.extendoffice.com/documen...ist-files.html
и также отдельные макросы-addons при желании можно найти (пару таких блуждало, еще лет пятнадцать назад, как это сделать самому, описание тут - https://trumpexcel.com/list-of-file-...lder-in-excel/ )

Если нужно взять только список верхнего уровня папок (без всей структуры), то и подавно все очень просто, можно либо скопировать и вставить путь в браузер (откуда скопировать в таблицу дальше), либо -
1. Open Windows Explorer and select the source folder in the left pane.
2. Press Ctrl + A to select all items in the right pane.
3. Press and hold the Shift key, then right click on the selection.
4. From the context menu, choose "Copy as Path".
5. Paste the list into Excel.

Но, как быть если нужно наоборот. Если занимаешься приведением файлов в порядок, и сперва это проще делать в Экселе (проводя пакетные правки, сопоставляя структуры, выдумывая классификации и тд.). Как потом это "выплюнуть" в Проводник? (разумеется, исключительно лишь как заголовки папочной структуры /как правило, только 1-3 уровня/, для последующего заполнения файлами).
Onehunter вне форума Ответить с цитированием
Старый 11.07.2018, 04:48   #2
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

В цикле перебираете нужные ячейки и создаете/удаляете/копируете папки по путям, указанных в ячейке, при необходимости с параметрами, указанными в соседних ячейках
maksim_serg вне форума Ответить с цитированием
Старый 11.07.2018, 08:30   #3
Onehunter
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 51
По умолчанию

ежели я бы это мог сам сделать, то врядли спросил. но спасибо.
Onehunter вне форума Ответить с цитированием
Старый 11.07.2018, 09:59   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Onehunter Посмотреть сообщение
ежели я бы это мог сам сделать, то врядли спросил. но спасибо.
Эту задачу сделать в Excel очень сложно.
а работать она будет не всегда корректно (будет глючить).
Так и зачем тогда это нужно?

Нет, ну серьёзно. Приведите конкретный пример - для чего может быть полезно это ваше
Цитата:
Сообщение от Onehunter Посмотреть сообщение
Если занимаешься приведением файлов в порядок, и сперва это проще делать в Экселе (проводя пакетные правки, сопоставляя структуры, выдумывая классификации и тд.). Как потом это "выплюнуть" в Проводник? (разумеется, исключительно лишь как заголовки папочной структуры /как правило, только 1-3 уровня/, для последующего заполнения файлами)
поясню, в чём сложность.
Если Вы зададите структуру папок в Excel и потом нужно такую структуру создать "с нуля" - то тут, как раз, проблем нет.
проблема возникает, если какие-то папки физически есть, а Вы пытаетесь к ним применить ваши изменения.
Тогда Вам в Excel напротив каждой папки нужно ставить команду - создать новую (если такой нет на диске),
переименовать (если такая на диске есть - при этом в ячейке нужно указать старое имя), удалить (при этом в ячейке нужно указать старое имя удаляемой папки).
Это всё сложно и муторно.
Да и не нужно, на мой взгляд.

Посмотрите в сторону специализированных файловых менеджеров (Total Commander, Far Commander), плагинов к ним или специальных программ.
посмотрите, например,
http://forum.oszone.net/thread-105509.html
https://forum.ixbt.com/topic.cgi?id=23:41726
и т.д. и т.п.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2018, 12:02   #5
Onehunter
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 51
По умолчанию

так этим целям и служит повторный индекс (индексация) - импорт папочной структуры. эти моменты мы упрощаем.

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

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

тут два шаблона работы.
1. полная неразбериха (условно, папка temp/download - на вход) где только все извлечено из архивов
2. сложенная структура уже, в процессе своих изменений

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

Получаем дальше итерационный подход.
1. выплюнули некую готовую структуру порядка.
2. засрали, со временем, как то ее (временно новые папки и файлы в нее сохранив)
3. заново проиндексировали, снова перераспределили в Экселе
4. выплюнули новую структуру опять (по новым путям!, чтобы не озадачивать Эксель удалением ненужных папок, это можно сделать разом вручную, убедившись, что все файлы ушли).

кто то может сделать такое? я готов доработать задачу, и оплатить.

----
есть пример программы, наверное, единственной, которая это делает (по полному кругу) - myBase Desktop.
она позволяет импортировать, сперва, в базу свою, структуру папок со всем содержимым, создавая соответствующие разделы каталогов на лету (текстовые файлы отображаются нативно, все остальное идет как вложения), и после редактирования дальше поверх, вернуть все, также, назад в папочную структуру, через операцию экспорт.
несовершенство ее - я не могу данные эти представить таблично (а мне это удобней), следовательно, не могу осуществлять операции пакетной их обработки (выборки-фильтры, ранжирование, пакетное переименование, автоподстановки по формулам и т.д.). кроме того, она не все файлы жует (бывают проблемы по кодировкам и длинным названиям).
Onehunter вне форума Ответить с цитированием
Старый 13.07.2018, 12:29   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

сложно. очень сложно.
что такое индексы и откуда они берутся - непонятно.
полезность данной приблуды очень сомнительна (по крайней мере, для широких масс).
если готовы сформулировать чёткое ТЗ и платить деньги, то, может быть,
стоит отправится во Фриланс.
ну или разбираться и программировать для себя любимого самостоятельно.
будет долго и сложно.
но на выходе получите то, что нужно именно Вам.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2018, 17:09   #7
Onehunter
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
сложно. очень сложно.
что такое индексы и откуда они берутся - непонятно.
полезность данной приблуды очень сомнительна (по крайней мере, для широких масс).
если готовы сформулировать чёткое ТЗ и платить деньги, то, может быть,
стоит отправится во Фриланс.
ну или разбираться и программировать для себя любимого самостоятельно.
будет долго и сложно.
но на выходе получите то, что нужно именно Вам.
под индексом понималась индексация папочной структуры, то есть перенос названий папок, с сохранением структуры, в Эксель. после чего, она изменяется (приводится к какой-то организации - более организованному каталогу), и будучи сопоставленной по своим старым и новым путям (исходный индекс = измененный индекс) служит проводящей воронкой для переноса содержимого (файлов) исходной структуры папок в их новый порядок (новые пути задаются как шаблоны желаемой папочной организации заранее, на отдельном листе Эксель, и выбираются как связанные списки, как правило, не дальше второго уровня организации, либо задаются как полные новые пути, что более правильно).
с точки зрения логики, вообще не вижу ничего сложного. особенно учитывая, что первая половина задачи уже реализована во многих приблудах (сама перепись данных на вход). и все, что лишь остается, это сопоставить в столбцах (параллельно) старые заголовки папок, и новые (которые и есть суть новые пути переноса всех данных) и дать команду содержимое этих всех старых папок, перенести в новую структуру. на примитивном примере это выглядит так:

операция 1. получение входной структуры из проводника вин (импорт данных):
_папка с некрасивым названием_1
--какой то файл в корневой папке_1.1
__подпапка с некрасивым названием_1.2
---какой то файл в подпапке_1.2.1
---какой то файл в подпапке_1.2.2

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

операция 3. перенос измененной структуры с копированием всех данных (экспорт) уже подобного вида:
_папка с красивым названием_1 --- путь С:\Суперкаталог\Раздел_1
--какой то файл в корневой папке_1.1
__подпапка с красивым названием_1.2 --- путь С:\Суперкаталог\Раздел1 (просто наследуется от корневой папки)
---какой то файл в подпапке_1.2.1
---какой то файл в подпапке_1.2.2

иными словами, копировали мы, допустим, откуда то полдня архивы со скриптами (книжки, программы, что угодно). единым махом их распаковали (или не распаковали, если это не архив), каждый в отдельную папку, и получили 200 мусорных папок (и отдельных файлов) с какими-то намеками на их содержимое. далее, где то уже есть организованный каталог (пустой, или в процессе уже заполнения), где все это будет хранится (чтобы удобно потом находить). задача - мусорку преобразовать в этот каталог. традиционно - это работа руками.
через Эксель, как я полагаю, можно ускорить раз в ..цать.
да, наверное, можно открыть Тотал коммандер, и из одного в другое окно также тягать. но когда структура сложна, и размещение ее разнородно (допустим, мы перебираем одновременно книжки, софт, видео и т.д.) то много времени убивает папочная беготня (найти, открыть, перенести, вернуться и т.д.). в Экселе это можно было делать в сквозную проходя по списку (просматриваем - аха, это любимое кино, летит в ---- С:\Медиатека\Избранное, аха, это скрипт Вордпресс в папку ---- D:\Скрипты\Вордпресс и тд). т.е. назначаем бегло только лишь метки (новые расположения). и потом по команде - это все перелетает в упорядоченные заранее места (папочные каталоги). как то так.

Последний раз редактировалось Onehunter; 13.07.2018 в 17:18.
Onehunter вне форума Ответить с цитированием
Старый 13.07.2018, 17:21   #8
Onehunter
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 51
По умолчанию

полагаю, целевые пути задавать лучше слева, т.к. они занимать будут только один столбец. а входящий индекс (исходная папочная структура) делать со смещением на этот столбец (т.к. она может разлететься на много столбцов, если многоуровневая слишком структура), и так сопоставлять.
/это уже некие ориентиры на подготовку Т3.
Onehunter вне форума Ответить с цитированием
Старый 13.07.2018, 17:35   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

немного понятней стало.

но Вы всё равно меня не убедили в том, что подобный сервис _намного_ удобнее, чем ручная работа.

и всё равно остались вопросы.

Цитата:
Сообщение от Onehunter Посмотреть сообщение
под индексом понималась индексация папочной структуры, то есть перенос названий папок, с сохранением структуры, в Эксель
где индекс в вашем примере? и что это за индекс?
если речь идёт о номере строки в Excel - то это не показатель.
один удалённый файл на диске - и вся "индексация" пошла коту под хвост.
я уже молчу о сложности выполнения "Операции 3" при таком подходе.

Цитата:
Сообщение от Onehunter Посмотреть сообщение
операция 2. переименование папок,
кроме переименования папок других операций в Excel выполнятся не будет.
Исключительно только переименование и всё? Удаления/вставки новых папок/перемещения файлов точно не будет?

Это, конечно, резко упрощает задачу и делает её вполне реализуемой.


Цитата:
Сообщение от Onehunter Посмотреть сообщение
операция 3. перенос измененной структуры с копированием всех данных (экспорт) уже подобного вида:
простите, а зачем копирование? Имеется в виду, что исходные папки с файлами остаются на своём месте,
а где-то на диске создаётся новый каталог и туда копируются все папки и файлы, только уже с новыми именами?
Переименовать на месте не проще?

и последнее.
А как будет (и будет ли вообще) производится контроль того, что всё удачно?
Ну, пытаетесь Вы файлы скопировать - а они уже там с другими именами. Или их больше, чем было. Или нет файлов.
Или папка отсутствует, которую хотите скопировать.
и т.д. и т.п.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.07.2018, 00:29   #10
Onehunter
Пользователь
 
Регистрация: 16.10.2010
Сообщений: 51
По умолчанию

Я подготовил файл примера логики работы (осознаю, что не все смог удачно сразу же объяснить, и сперва вышло сумбурно).

Индекс - это, каждый раз, заново осуществляемый прогон (листинг директорий) - считывание реализованной (актуальной) папочной структуры, с загружением ее в Эксель в режиме Группировки (вот такая раньше, для того, была приблуда, двадцатилетней давности, сейчас, скорей, не заработает) . И этого добра по миру уже много -
http://www.cpearson.com/Excel/FolderTree.aspx
http://www.tushar-mehta.com/excel/so...lp/index.shtml
Она ведь (структура, и имена) может меняться и при прямом обращении к ней (от этого мы не отказываемся, и себя не ограничиваем), когда нужно провести быстро всего несколько исправлений, тогда Эксель (со всей этой логикой) нам не нужен. Эксель нужен чтобы перепотрошить завалы, когда их становится уже перебор (в качестве стандартного поведения тут - ситуация, когда изучаешь направление софта, накидывая в Download представителей его эдак штук ..цать, которые, либо остаются брошенными, в этих завалах, либо, при необходимости повторного обращения, потребуется, как-то, уже это организовать, в рамках проектной работы - личного интереса). Это может быть софт, книги, скрипты, видео, html и т.д.

Да, в Экселе только переименования (правильнее сказать - перенаправление). И если нам нужно будет на удаление что либо определить, то мы так и назовем папку - Ну удаление, и по ходу разгребания индекса (исходных завалов) все ненужное можно туда направлять, а потом, со временем, ее удалить.
Эксель, в данном случае, выступает как пылесос (или мясорубка). Мы задаем ему какой-то стандарт (порядок меток) переработки явно неопределившихся данных (неопределившихся сразу - в течение одной сессии внимания), закладывая библиотеки структур будущих идеальных (в нашем представлении) каталогов (папочной структуры), и даем команду ему перестроить физическое положение вещей - файлов и папок. В каком-то смысле - это рядовая работа по упорядочению аутлайнерских структур (характерная для такого класса программ - аутлайнеров-каталогизаторов), где Эксель выступает как некий драйвер, а в качестве философии принимается - отказ от хранения в базе (все остается нативно открыто).

Относительно копирования. Да, изначально, было представление, что это бесконечный итерационный процесс (по наполнению и совершенствованию такой идеальной структуры из папок, где работа ведется и напрямую - как мы уже описали). И чтобы исключить здесь вероятность ошибки, и иметь также форму контроля, предполагалось, каждый раз заново структуру эту составлять (экспортируя файлы), как бы зеркалируя все более лучшую версию, исключая процесс удаления. В каком-то смысле, это похоже на линьку. Прошло время, стало больше понятно, что нужно, что нет, мы заходим снова в Эксель, и формируем актуальную снова структуру, переназначая все ненужное на удаление (лучшее - на переименование, с учетом какого то ранга). В силу того, что процесс копирования такой может быть не быстрым уже (когда счет на сотни ГБ), то да, принимаем сам характер работы в Эксель - как уже капитальный (то есть, проводимый нечасто - раз в месяц и т.д.).
Ну и чтобы не планировать для этого лишнее место, мы, говорим, конечно, о простом переносе (перенос файлов, с переназначением их новых мест размещения, на лету) тут я слово копирование употребил некорректно. В общем, прошло время, придумали новое сито - в очередной раз просеяли. И так каждый раз, пока все структуры не войдут в личное подсознание, как отлаженные идеально, почти. Получаем каталожно-проектный подход, что очень удобно, при универсальной работе.

/из примера, там получается, что определение нового пути (обозначенная новая папка), захватывает все содержимое сопоставленной ей старой папки. тут важно быть внимательным, чтобы не создать наложение задачи (как-то нужно будет улучшить юзабилити - поможет форматирование).
Вложения
Тип файла: xlsx _dir_sample.xlsx (248.4 Кб, 23 просмотров)

Последний раз редактировалось Onehunter; 14.07.2018 в 08:48.
Onehunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
файловый тип данных ksenija15reg Паскаль, Turbo Pascal, PascalABC.NET 5 03.11.2014 17:13
файловый тип данных zxzxz Помощь студентам 5 07.05.2013 19:34
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
файловый тип данных и тд. deni007-92 Фриланс 2 03.06.2010 15:09
Присвоение названий рядам данных в диаграмме 500_pinguins Microsoft Office Excel 4 21.08.2009 08:55