Как собрать данные из разных файлов excel в одну таблицу 2007

Как объеденить кучу Excel файлов в один?

Здравствуйте, уважаемые пользователи Тостера.

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

Вопрос заключается в следующем: объективно ли будет писать данную программу на Python? Если нет, то как можно решить данную проблему проще?

Заранее благодарен всем, кто попытается помочь.

  • Вопрос задан более трёх лет назад
  • 96369 просмотров
  • Facebook
  • Вконтакте
  • Twitter
  • Google

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

Открываем книгу, куда хотим собрать листы из других файлов, входим в редактор Visual Basic (ALT+F11), добавляем новый пустой модуль (в меню Insert — Module) и копируем туда текст вот такого макроса:

Sub CombineWorkbooks()
Dim FilesToOpen
Dim x As Integer

Application.ScreenUpdating = False ‘отключаем обновление экрана для скорости

‘вызываем диалог выбора файлов для импорта
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="All files (*.*), *.*", _
MultiSelect:=True, Title:="Files to Merge")

If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Не выбрано ни одного файла!"
Exit Sub
End If

‘проходим по всем выбранным файлам
x = 1
While x более трёх лет назад

Как свести несколько Excel файлов в общую таблицу в отдельном файле

Задача сводится к 2-м вопросам:
1) Как установить расширение в Excel
2) Как свести несколько Excel файлов в общую таблицу в отдельном файле

Часть 1: установить расширение в Excel

С вопросом нам поможет RDBMerge (оф. сайт) скачать его можно с официального сайта: тут или моя копия на google drive тут

Рекомендуется все расширения хранить в одной какой-то папке, которую вы не будите никуда перемещать. После скачивания архива (zip) распакуйте его в эту папку.

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

Теперь подключим расширение:

2015-01-17_231036

2015-01-17_231143

2015-01-17_231200

2015-01-17_231223

2015-01-17_231250

Ну и находим иконку расширения:

Часть 2: Как свести несколько Excel файлов в общую таблицу в отдельном файле

Вообще этот пост родился как справка на вопрос journal_rediski , я честно скажу, что ее первую часть вопроса пропустил, но как понял у нас имеются следующие исходные данные:

Множество файлов одинаковой структуры, например:

Файл один
2015-01-17_232524
Файл два
2015-01-17_232511

Берем и кладем эти файлы в одну папку. Запускаем расширение и устанавливаем параметры:

2015-01-17_235648

Кнопкой "browse" выбираем папку где у нас лежать файлы Excel, рядом есть галочка на случай если положить в одну папку не получится (у файлов строгая иерархия).

Дальше выбираем галочкой, что хотим объединить все файлы (имеется в виду в указной директории), если выбрать самый первый вариант, то потом при нажатии кнопки можно будет выбирать конкретные файлы в ЛЮБЫХ МЕСТАХ — это полезно если вам лень складывать все файлы в одно место, но совсем не жаль времени лазить по ПК в разные места 🙂

В разделе "Which range" можно задать области импорта. Первая галочка позволит копировать данные с определенного диапазона — это полезно когда вам нужен кусок таблицы, второй параметр позволяет задать начало копирования когда нужно скопировать все данные до самого конца листа, здесь мы поставили А2 — чтобы пропустить названия столбцов (шапку).

А вот с галочкой "Paste as Value" и печально и нет одновременно — она нужна чтобы вставлять ячейки как текст/число для избежания проблем с формулами, проблемы с формулами возникают тогда, когда какой-то элемент ссылается на данные которые не копируются. Но если ее поставить то лично у меня не переносится формат даты, поэтому у меня она снята, ну а радостное, что без нее формулы тоже переносятся.

Ну и поехали, после Merge получаем:

Первый столбец оставлен чисто для информации, его можно удалить, внизу можно перейти на новый лист и посмотреть отчет об импорте:

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

Ну вот и все. самое забавное что на vba решение заняло бы всего пару десятков строк кода 🙂

Ссылка на основную публикацию