Evolcom.ru

Бытовая техника
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как перебирать файлы в каталоге и копировать данные в мастер-лист в Excel?

Как получить список файлов в Excel с помощью VBA

Специально для примера я создал папку, в которую поместил несколько файлов разных типов и две вложенные папки. Вот как они выглядят:

Папка с файлами и каталогами

Рассмотрите, как получить список файлов.

Способ 1. Использование функции Dir

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

Вот код для этой функции, которая выводит список файлов на лист 1.

С помощью дополнительной функции мы проверяем, существует ли папка. Используется та же функция Dir, но без сторонних библиотек.

Вот как выглядит результат работы функции. В результате работы программы на текущий лист Excel был добавлен список файлов.

Вывод списка файлов на лист

Мы не проверили здесь тип файла и отправили все.

Если вам необходимо выбрать только определенные типы файлов, например, файлы Excel, то в нашем коде необходимо сделать дополнительную проверку:

Знак "*" означает любой набор символов. Таким образом, мы учли различные версии файлов Excel (xls, xlsx, xlsm).

Способ 2. Используем объект FileSystemObject

В этом случае мы не только получим имена файлов, но и определим тип файла, его размер и дату создания. Для этого нам потребуется использовать FileSystemObject. Это дает нам информацию о файловой системе компьютера.

Однако, чтобы начать им пользоваться, необходимо подключить библиотеку. Не волнуйтесь, она доступна на всех компьютерах с Windows, поэтому вам не придется ничего скачивать. Для подключения вам потребуется :

  1. Открыть пункт меню Tools и выбрать пункт References.
    Открыть пункт меню Tools и выбрать пункт References
  2. Выбрать ссылку на библиотеку Microsoft Scripting Runtime.
    Выбрать ссылку на библиотеку Microsoft Scripting Runtime.
  3. Нажать Ок.

Давайте перейдем к коду. Она была немного упрощена:

Обратите внимание на переменные. Переменная FSO — это новый экземпляр FileSystemObject. Он создается и объявляется здесь. Директива New очень важна, многие допускают здесь ошибку. Также мы создаем объекты MyFolder и iFile, которые также являются объектами FileSystemObjects

Затем мы проверяем существование папки. В данном случае нам не нужна дополнительная функция, мы используем метод FolderExists объекта FileSystemObject.

А затем точно так же нужно пройтись по всем файлам в каталоге. Вот где пригодится цикл For Each — Next.

Результаты данной программы следующие:

Получаем список файлов с помощью FileSystemObject

Способ 3. Создаем функцию, которая возвращает файлы в папке и подпапках

Вот функция, которая возвращает все файлы в текущей папке и ее подпапках. Функция универсальна, поэтому подойдет на все случаи жизни. Скопируйте ее в свой проект!

Поэтому приступим к коду:.

Рассмотрим основные моменты этой функции. Она принимает один обязательный аргумент — путь к папке Path. Вы также можете указать два необязательных параметра:

  • Filter — перечисление списка файлов, которые мы хотим получить. Перечислять необходимо через запятую, например "doc, xls*". Вы можете использовать символ "*" чтобы включить сравнение по шаблону. По умолчанию фильтр отсутствует и возвращаются все типы файлов.
  • Nesting — вложенность. Это максимальное число вложенных папок в которые "проваливается" алгоритм. По умолчанию равно 100.
Читайте так же:
Как подсчитать / суммировать ячейки больше, чем число?

В общем, комментарии к алгоритму излишни, все должно быть понятно. Строка 38 — это основной момент, который я хочу подчеркнуть.

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

Теперь наша функция доступна, так что давайте воспользуемся ею следующим образом:

Функция возвращает нам коллекцию файлов в папке и вложенных папках. Это работает следующим образом:

Список файлов в папке и вложенных папках

Файл-образец можно скачать и использовать в своей работе, нажав на кнопку ниже. Оставляйте свои комментарии, я буду рад ответить на них.

Импорт и экспорт текстовых файлов (в формате TXT или CSV)

Добавление данных в Excel из текстового файла можно выполнить одним из двух способов: открыть текстовый файл в Excel или импортировать его как диапазон внешних данных. В Excel используйте команду Сохранить как и выберите в меню тип текстового файла для экспорта данных.

Существуют два основных типа текстовых файлов:

Текстовые файлы с разделителями (TXT), которые обычно используют символ табуляции (ASCII код 009) для разделения текстовых полей;

Текстовые файлы, разделенные запятыми (,), которые, как правило, используются для текстовых полей.

Вы можете изменить знак разделения, используемый в файлах TXT и CSV. Для обеспечения успешного импорта и экспорта это может быть необходимо.

Примечание: Вы можете импортировать и экспортировать до 1 048 576 строк и 16 384 столбцов.

Импорт текстового файла путем его открытия в Excel

Текстовый файл, созданный в другой программе, можно открыть как рабочую книгу Excel с помощью команды Открыть. При открытии текстового файла в Excel его формат не меняется — он виден в строке заголовка окна Excel, где имя указано с расширением текстового файла (например, TXT или CSV).

Выберите >open и перейдите в папку, содержащую текстовой файл.

В диалоговом окне Открыть выберите текстовые файлы в списке типов файлов.

Найдите нужный файл и дважды щелкните на нем.

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

Если файл имеет расширение CSV, Excel автоматически открывает его и отображает данные в новой рабочей книге.

Параметры форматирования данных по умолчанию определяют, как импортируются столбцы при открытии файлов CSV. Если вы хотите использовать другой вариант, воспользуйтесь мастером импорта текста. Например, мастер понадобится, если столбец данных в CSV-файле имеет формат MDH, а Excel по умолчанию использует формат GMD, или вам нужно преобразовать столбец чисел, содержащих ведущие нули, в текст, чтобы сохранить их. В качестве альтернативы можно импортировать текстовый файл, подключившись к нему (более подробную информацию см. в следующем разделе), или изменить расширение с CSV на TXT.

Импорт текстового файла путем подключения к нем (Power Query)

Существующий файл может быть импортирован с данными из текстового файла.

Выберите из документа Text/CSV на вкладке Data в группе Data Conversion.

В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл для импорта и нажмите кнопку Импорт.

Читайте так же:
Как повернуть таблицу на 90 или 180 градусов в Excel?

В диалоговом окне предварительного просмотра имеется несколько опций:

Выберите Загрузить, если вы хотите загрузить данные непосредственно в новую.

Кроме того, выберите загрузить в, если вы хотите загрузить данные в таблицу, в смету или в существующий или новый лист Excel, или просто создать соединение. Вы также можете добавить данные в модель данных.

Выберите Преобразовать данные, если вы хотите загрузить данные в Power Query и отредактировать их перед преобразованием в Excel.

Если Excel не конвертирует определенный столбец данных в нужный формат, вы можете преобразовать его после импорта. Для получения дополнительной информации см. статьи Преобразование чисел из текста в числовой формат и Преобразование дат из текста в формат даты.

Экспорт данных в текстовый файл путем его сохранения

С помощью функции Save As можно преобразовать рабочий лист Excel в текстовый файл.

Выберите «Файл» > «Сохранить как».

Нажмите навигационную кнопку.

В диалоговом окне Сохранить как в поле Тип файла выберите формат текстового файла для этого документа. Используйте, например, кнопки Текст (с вкладками) или CSV (с разделителями-запятыми).

Различные форматы текстовых файлов обладают разными возможностями. Подробнее о поддерживаемых форматах файлов Excel можно узнать здесь.

Укажите местоположение, где вы хотите сохранить файл, а затем нажмите кнопку Сохранить.

Откроется диалоговое окно, напоминающее, что в текстовый файл будет сохранен только текущий лист. Если вы хотите сохранить только текущий лист, нажмите OK. Вы можете сохранить остальные листы в отдельных текстовых файлах, повторив эту процедуру для каждого листа.

При сохранении книги в формате CSV вы также можете увидеть предупреждение о том, что некоторые характеристики будут утеряны.

Чтобы узнать больше о сохранении файлов в другом формате, см. раздел «Сохранение книги в другом формате».

Импорт текстового файла путем подключения к нему

Можно импортировать данные из текстового файла в существующий файл.

Щелкните по ячейке, в которую нужно поместить данные из текстового файла.

На вкладке Данные в группе Получить внешние данные выберите Из текста.

В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который необходимо импортировать, и нажмите кнопку Импорт.

Следуйте инструкциям в мастере импорта текста. Щелкните на любой странице мастера импорта текста для получения дополнительной информации об использовании мастера. Когда вы закончите работу с мастером, нажмите Finish, чтобы завершить импорт.

В диалоговом окне «Импорт данных»:

В группе «Куда поместить данные?» выполните одно из следующих действий.

Чтобы поместить данные в выделенные ячейки, нажмите кнопку В существующем листе.

Чтобы разместить данные в левом верхнем углу нового листа, выберите Новый лист.

При необходимости установите параметры обновления, форматирования и компоновки для импортированных данных, нажав кнопку «Свойства».

Нажмите кнопку ОК

Excel добавит внешний диапазон данных в указанное место.

Столбец можно преобразовать в нужный формат после импорта, если Excel не позаботится об этом. Чтобы узнать больше, ознакомьтесь с разделами Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.

Экспорт данных в текстовый файл путем его сохранения

Вы можете сохранить лист Excel в виде текстового файла с помощью опции Сохранить как.

Выберите File > Save As (Файл > Сохранить как).

Читайте так же:
Как подсчитать уникальные значения на основе другого столбца в Excel?

Появится диалоговое окно «Сохранить документ».

Если вы используете формат текстовых файлов, выберите его в поле Тип файла.

Например, выберите Текстовые файлы (с разделителями табуляции) или CSV (разделители — запятые).

Примечание: Различные форматы текстовых файлов поддерживают разные функциональные возможности. Дополнительные сведения см. в статье о поддерживаемых форматах файлов Excel.

Перейдите в папку, в которую вы хотите сохранить файл, и нажмите Сохранить.

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

Откроется еще одно диалоговое окно с напоминанием о том, что сохраняемая электронная таблица может содержать элементы, не поддерживаемые форматами текстовых файлов. Нажмите Да, если вы хотите сохранить в новом текстовом файле только данные из электронной таблицы. Если вы не уверены и хотите получить дополнительную информацию о функциях, которые Excel не поддерживает в форматах текстовых файлов, нажмите кнопку Справка.

Подробнее о том, как сохранять файлы в других форматах, см. в статье Сохранение книги в другом формате

Ваш метод изменения разделения при импорте зависит от того, как вы импортируете текст.

Если вы используете функцию Получить и преобразовать данные > Из текста/CSV, после выбора текстового файла и нажатия кнопки Импорт выберите символ, который вы хотите использовать, из списка. Новый вариант можно сразу же увидеть в окне предварительного просмотра данных, чтобы убедиться, что вы делаете правильный вариант, прежде чем продолжить.

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

Для получения дополнительной информации о различных опциях и дополнительных настройках см. мастер импорта текста.

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

Выберите Параметры Excel>Дополнительно>Параметры редактирования>Использовать системные интерфейсы.

Устанавливается для десятичной точки (запятая).

Установите устройство формирования изображения на значение 1000 (точка).

Когда вы сохраняете книгу в CSV-файл, по умолчанию запятая для разных списков одинакова. Вы можете заменить этот знак на другой с помощью региональных настроек Windows.

Внимание: изменение настроек Windows внесет глобальные изменения в ваш компьютер и повлияет на все приложения. Чтобы изменить делитель только для Excel, см. раздел Изменить делитель по умолчанию в списке Хранение файлов в текстовом формате (CSV или CSV-файл) в Excel.

В Microsoft Windows 10 щелкните правой кнопкой мыши Пуск и выберите Параметры.

Вы можете выбрать регион слева, нажав кнопку & языки.

На главной панели в группе Региональные параметры нажмите Дополнительные параметры даты, времени и региона.

Выберите в области, чтобы изменить формат даты, времени или номера в области.

В диалоговом окне Регион на вкладке Формат выберите пункт Дополнительные параметры.

Введите символ, который вы хотите использовать для разделителя списка, в поле Разделитель списка на вкладке Числа диалогового окна Настройка формата.

Читайте так же:
Как повторить строки указанное количество раз на основе другого столбца в Excel?

Нажмите кнопку OK дважды.

Панель управления можно найти, нажав кнопку «Пуск».

Нажмите Изменить формат даты, времени и чисел в разделе Часы, Язык и Регион.

На вкладке Формат диалогового окна Регион выберите Дополнительные параметры.

В диалоговом окне Настройки формата на вкладке Число введите символ, который вы хотите использовать в качестве нового символа в поле Список.

Нажмите кнопку OK дважды.

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

Дополнительные сведения

Вы можете задать вопрос эксперту Excel Tech Community или обратиться за помощью в сообщество «Ответы».

C# скопируйте и добавьте содержимое файла excel в новый файл excel

Я пытаюсь создать проект установки (windows forms), с помощью которого я могу выбрать несколько файлов excel в каталоге, скопировать содержимое каждого файла и добавить его в новый выходной файл. Я использую пакет Microsoft.Office.Interop.Excel в версии VS 2017 community edition. Я все еще работаю над этим, но небольшой толчок в правильном направлении очень помог бы.

Скажем, у меня есть 100 файлов excel в каталоге, каждая книга excel содержит по крайней мере 1 лист. Структура каждого листа идентична. Используя OpenFileDialog :

  1. Я выбираю файлы и отображаю имя выбранного файла и путь к нему в поле списка.
  2. Отобразите количество файлов в окне списка.
  3. Я считываю содержимое каждого файла и вставляю его в новый файл Excel. Выходной файл представляет собой один файл. После загрузки каждого файла я добавлю его содержимое в конец выходного файла. Поэтому я скопирую все строки с одного листа и добавлю их в конец другого листа.

Я не знаю, где именно я ошибаюсь, у меня даже не получается создать выходной файл excel. Вот моя работа на данный момент:

Хотя это решение работает, оно не копирует содержимое и вызывает ошибку. Ошибка выглядит следующим образом:

Error Screenshot

Любая помощь или предложения приветствуются. Спасибо за помощь.

Я уже перепробовал все решения на сайтах stackexchange, codeproject и многих других. Поэтому, пожалуйста, не отмечайте его как дубликат или задание.

3 ответа

  • Копирование содержимого файла Excel в конец другого файла Excel

Как скопировать файл Excel в другой файл Excel с помощью языка VBA Как указать пути для двух файлов Excel? Вот что я нашел в Интернете: ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) Это то, что я видел, но я не могу это сделать, может ли кто-нибудь сказать мне, как я могу это сделать?

У меня есть папка с 10 файлами Excel. Каждый из файлов Excel содержит 5 листов. Я хотел бы скрепить каждую первую строку первого листа каждого файла Excel с новым листом 1 нового файла Excel под названием «final». Скрепите каждую вторую строку первого листа каждого файла Excel на новом листе 1 нового файла Excel под названием «final».

Я знаю, что я опоздал с этим, но я надеюсь, что это может помочь кому-то.

Доступны две функции: одна для открытия файлов, другая для копирования содержимого.

В первой функции можно открыть любое количество файлов, используя цикл for:

Читайте так же:
Как показать скрытые данные на диаграмме в Excel?

Я установил предел ровно в один миллион. Если вы считаете, что это ограничение может помешать работе Excel, вы можете уменьшить его.

Приглашаем вас внести изменения в код.

  • Чтение файла Excel в файл C

Я хочу прочитать данные из файла Excel на языке C. Файл Excel 2007 содержит около 6000 строк и 2 столбца. Я хочу записать содержимое в двумерный массив на языке C. Если есть библиотека C или другой метод, пожалуйста, сообщите мне.

Я хочу скопировать определенный столбец из файлов Excel в папке и вставить все значения в новый лист Excel. Готово — я могу просматривать все файлы, находящиеся в папке. Я могу копировать данные из определенного столбца. Невозможно завершить — Невозможно вставить.

Вместо копирования/вставки UsedRange попробуйте использовать функцию Sheet.Copy. Это значительно упростит код и уменьшит количество потенциальных точек ошибок. C# — Как скопировать лист Excel из одной книги в другую?

Вы также можете использовать System.IO для копирования файла Excel в другой файл:

Похожие вопросы:

У меня есть папка, содержащая более 2000 таблиц MS Excel 2010 .XLSX, и мне нужно сделать следующее: нужно открыть каждый файл Скопировать содержимое ячейки B4 (+ …

У меня есть файл Excel. Мне нужно открыть его, выбрать из него определенные листы и преобразовать их в PDF. Я могу преобразовать весь файл Excel, я просто не знаю, как его преобразовать.

Я хотел бы преобразовать txt-файл в excel, затем изменить некоторые данные в excel-файле и, наконец, импортировать этот новый excel-файл в базу данных с помощью PHP. Содержимое файла excel.

Как скопировать файл Excel в другой файл Excel с помощью языка VBA Как указать пути для двух файлов Excel? Вот что я нашел в Интернете: ActiveSheet.Move.

У меня есть папка с 10 файлами Excel. Каждый из файлов excel содержит 5 листов. Я хотел бы сшивать каждую первую строку первого листа каждого файла excel в новый лист1 в новом имени файла excel.

Я хочу прочитать файл excel на языке C. Файл excel 2007 содержит около 6000 строк и 2 столбца. Я хочу сохранить содержимое двумерной таблицы в C. Если есть библиотека C или любой другой метод.

Было бы здорово, если бы вы нашли способ скопировать определенный столбец из файлов Excel в папке и вставить все значения в другой лист Excel. Теперь я могу пройтись по всем файлам в папке. Я могу.

У меня есть файл csv с разделителями в виде труб. Может ли c# открыть файл в блокноте, а затем скопировать данные в Excel? Следующий шаг важен для меня.

Я хочу создать программу .bat, которая дублирует несколько файлов Excel в одной папке, но переименовывает их: Скопируйте этот файл Excel в ту же папку C:FundsReport 12-16 Переименуйте.

Excel файл 1: ColumnA ColumnB ColumnC 1. Куриное мороженое 2. Сливочное мороженое 3. Баранье мороженое 4. Говяжий огонь 6. Огуречный огонь 7. Яйцо огонь Excel файл 2: КолонкаА КолонкаВ лед Ягненок огонь Яйцо У меня.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector