Как перенести структуру папок в Excel: от ручного списка до автоматических скриптов

Перенос структуры папок в Excel — задача, с которой сталкиваются системные администраторы, архивариусы и даже обычные пользователи при инвентаризации файлов. Вручную переписывать сотни папок неэффективно, а стандартные функции Windows или macOS не предлагают прямого экспорта в .xlsx. К счастью, есть минимум 5 рабочих способов: от простых (копирование через буфер обмена) до продвинутых (скрипты на PowerShell или VBA).

В этой статье разберём каждый метод с пошаговыми инструкциями, примерами кода и таблицами сравнения. Вы узнаете, как:

  • 📋 Экспортировать список папок через командную строку (без установки ПО)
  • 🖱️ Использовать проводник Windows для быстрого копирования путей
  • 🤖 Автоматизировать процесс с помощью PowerShell и Python
  • 📊 Преобразовать данные в удобный формат таблицы с вложенностью
  • ⚙️ Настроить VBA-макрос для динамического обновления списка

Важно: методы работают для Excel 2013–2023 и Microsoft 365, а также совместимы с LibreOffice Calc и Google Sheets (с оговорками). Если вам нужно перенести не только названия папок, но и размер файлов или даты изменения — обратите внимание на разделы про скрипты.

📊 Для чего вам нужен экспорт папок в Excel?
Инвентаризация файлов
Перенос данных на другой ПК
Автоматизация отчётов
Другое

1. Ручной метод: копирование через проводник Windows

Самый простой способ — скопировать пути папок из проводника и вставить их в Excel. Подходит для небольших каталогов (до 100–200 папок).

Инструкция:

  1. Откройте папку, структуру которой нужно экспортировать.
  2. Выделите все папки (сочетание Ctrl + A).
  3. Зажмите Shift и кликните правой кнопкой мыши по любой папке. В контекстном меню выберите Копировать как путь.
  4. Вставьте данные в Excel (Ctrl + V). Каждый путь будет в отдельной ячейке.

Чтобы очистить пути от лишних символов (например, удалить "C:\Users\..." и оставить только имена папок), используйте функцию =ПРАВСИМВ() или ТЕКСТПОСЛЕ() (в новых версиях Excel). Пример формулы для извлечения имени папки:

=ПРАВСИМВ(A1; ДЛСТР(A1) - НАЙТИ("\"; ПОДСТАВИТЬ(A1; "\"; "|"; ПОСЛЕДНИЙСИМВ(A1) = "\")))

☑️ Подготовка данных в Excel

Выполнено: 0 / 4
⚠️ Внимание: Если папок больше 200, проводник может "зависнуть" при копировании путей. В этом случае используйте методы из следующих разделов.

2. Экспорт через командную строку (CMD)

Командная строка позволяет экспортировать список папок в текстовый файл, который затем легко импортировать в Excel. Этот метод работает в Windows 7–11 и не требует прав администратора.

Шаги:

  1. Откройте CMD (сочетание Win + R, введите cmd).
  2. Перейдите в нужную директорию командой:
    cd "C:\Путь\к\вашей\папке"
  3. Выполните команду для экспорта списка папок:
    dir /AD /B > folders.txt

    Флаг /AD показывает только папки, /B — краткий формат, > folders.txt сохраняет результат в файл.

  4. Откройте созданный folders.txt в Excel через Файл → Открыть → Обзор.

Чтобы экспортировать вложенные папки (рекурсивно), используйте команду:

dir /AD /B /S > folders_recursive.txt
Команда Результат Пример вывода
dir /AD /B Список папок в текущей директории Папка1
Папка2
Папка3
dir /AD /B /S Рекурсивный список (включая вложенные папки) C:\...\Папка1
C:\...\Папка1\Подпапка1
dir /AD /T:C /B Список папок с датой создания 12.05.2023 Папка1

3. Автоматизация с PowerShell

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

Скрипт для экспорта папок с атрибутами:

Get-ChildItem -Directory -Recurse | Select-Object FullName, Name, CreationTime, LastWriteTime | Export-Csv -Path "folders.csv" -Encoding UTF8 -NoTypeInformation

Разберём параметры:

  • 📁 -Directory — фильтр только для папок (исключает файлы).
  • 🔍 -Recurse — включает вложенные папки.
  • 📄 Select-Object — выбирает столбцы для экспорта (FullName, Name и т. д.).
  • 📑 Export-Csv — сохраняет результат в CSV, который открывается в Excel.

Чтобы запустить скрипт:

  1. Откройте PowerShell (от имени администратора не требуется).
  2. Перейдите в нужную директорию: cd "C:\Путь\к\папке".
  3. Вставьте скрипт и нажмите Enter.
  4. Откройте сгенерированный folders.csv в Excel.
Как добавить столбец с размером папки?

Добавьте в скрипт параметр @{Name="Size (MB)"; Expression={(Get-ChildItem $_.FullName -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB}} после Select-Object.

⚠️ Внимание: Если в названиях папок есть кириллица, используйте параметр -Encoding UTF8, иначе в Excel отобразятся кракозябры.

4. Использование VBA-макроса для динамического обновления

Если вам нужно регулярно обновлять список папок в Excel, настройте VBA-макрос. Он позволит экспортировать данные прямо из книги без внешних файлов.

Пример макроса для экспорта папок из выбранной директории:

Sub ExportFoldersToExcel()

Dim fso As Object

Dim folder As Object

Dim subfolder As Object

Dim i As Integer

Set fso = CreateObject("Scripting.FileSystemObject")

Set folder = fso.GetFolder("C:\Путь\к\папке") ' Замените на свой путь

i = 1

For Each subfolder In folder.SubFolders

Cells(i, 1).Value = subfolder.Path

Cells(i, 2).Value = subfolder.Name

Cells(i, 3).Value = subfolder.DateCreated

i = i + 1

Next subfolder

End Sub

Как использовать:

  1. Откройте Excel и нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Замените "C:\Путь\к\папке" на актуальный путь.
  4. Запустите макрос (F5), данные появятся на листе.

Преимущества метода:

  • 🔄 Динамическое обновление — достаточно запустить макрос повторно.
  • 📊 Гибкость — можно добавить столбцы с размером, атрибутами и т. д.
  • 📎 Интеграция — данные сразу попадают в Excel без промежуточных файлов.

5. Экспорт с помощью Python (для продвинутых пользователей)

Если вы работаете с большими каталогами (тысячи папок) или нуждаетесь в сложной обработке данных, используйте Python с библиотеками os и pandas.

Пример скрипта:

import os

import pandas as pd

root_dir = "C:/Путь/к/папке" # Замените на свой путь

data = []

for dirpath, dirnames, filenames in os.walk(root_dir):

for dirname in dirnames:

full_path = os.path.join(dirpath, dirname)

data.append({

"Путь": full_path,

"Название": dirname,

"Дата создания": os.path.getctime(full_path),

"Дата изменения": os.path.getmtime(full_path)

})

df = pd.DataFrame(data)

df.to_excel("folders.xlsx", index=False)

Преимущества Python:

  • 🐍 Обработка больших данных — скрипт справится с миллионами папок.
  • 📈 Дополнительная аналитика — можно рассчитать статистику (например, средний размер папок).
  • 🔄 Автоматизация — скрипт можно запускать по расписанию (через Task Scheduler).

Чтобы запустить скрипт:

  1. Установите Python (версия 3.6+) и библиотеки: pip install pandas openpyxl.
  2. Сохраните код в файл export_folders.py.
  3. Запустите скрипт: python export_folders.py.
  4. Откройте сгенерированный folders.xlsx.
⚠️ Внимание: Если в путях есть пробелы или кириллица, используйте сырые строки (префикс r перед путём) или экранирование. Например: root_dir = r"C:\Мои документы\Проект".

6. Альтернативные инструменты: Tree и специализированное ПО

Если стандартные методы не подходят, воспользуйтесь сторонними утилитами:

Инструмент Описание Ссылка
Tree (встроенная в Windows) Выводит древовидную структуру папок. Команда: tree /F /A > tree.txt Входит в состав Windows
Directory List & Print Графическая утилита для экспорта папок и файлов в Excel, PDF, HTML Сайт разработчика
Karen’s Directory Printer Позволяет экспортировать структуру с фильтрами по дате, размеру, атрибутам Скачать

Пример использования Tree:

  1. Откройте CMD.
  2. Перейдите в нужную папку: cd "C:\Путь".
  3. Выполните команду:
    tree /F /A > tree.txt

    Флаги: /F — показывать файлы, /A — использовать ASCII-символы (для корректного отображения в Excel).

  4. Импортируйте tree.txt в Excel и очистите данные от лишних символов (например, заменой ├─── на пустоту).

FAQ: Частые вопросы

Можно ли экспортировать папки вместе с файлами?

Да. В PowerShell используйте команду без флага -Directory:

Get-ChildItem -Recurse | Export-Csv -Path "items.csv"

В CMD — просто уберите /AD:

dir /B /S > all_items.txt
Как экспортировать папки на macOS?

Используйте Terminal с командой:

find /путь/к/папке -type d -exec ls -ld {} + > folders.txt

Или для рекурсивного списка:

find /путь/к/папке -type d > folders_recursive.txt

Откройте файл в Excel или Numbers.

Почему в Excel вместо кириллицы отображаются знаки вопроса?

Проблема в кодировке. При экспорте через PowerShell или Python явно указывайте UTF-8:

  • В PowerShell: -Encoding UTF8.
  • В Python: df.to_excel("folders.xlsx", engine='openpyxl', encoding='utf-8').

При импорте в Excel выбирайте кодировку 65001 (UTF-8).

Как автоматизировать экспорт по расписанию?

Настройте задачу в Планировщике заданий Windows:

  1. Создайте задачу (Пуск → Планировщик заданий → Создать задачу).
  2. В качестве действия укажите запуск скрипта (PowerShell или Python).
  3. Настройте триггер (например, ежедневно в 20:00).

Для macOS используйте launchd или cron.

Можно ли экспортировать права доступа (ACL) к папкам?

Да, но только через PowerShell или Python. Пример для PowerShell:

Get-ChildItem -Directory | Select-Object FullName, @{Name="ACL"; Expression={(Get-Acl $_.FullName).Access | Out-String}} | Export-Csv -Path "folders_with_acl.csv"

В результате в столбце ACL будут права доступа для каждой папки.