Как объединить данные из нескольких файлов Excel в один файл Excel или базу данных Access?


12

У меня есть несколько десятков файлов Excel, которые имеют один и тот же формат (т.е. 4 листа на файл Excel). Мне нужно объединить все файлы в один мастер-файл, который должен иметь только 2 из 4 листов. Соответствующие рабочие листы из каждого файла Excel названы точно так же, как и заголовки столбцов.

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

Я никогда не использовал VBA раньше, и мне интересно, где я мог бы начать эту задачу!

Ответы:


3

Так как вы хотели их на одном листе, я думаю, что выше не то, что вы искали.

Я использую Microsoft Access для объединения данных. Особенно, если разные листы имеют одинаковый идентификатор (номер детали / контактное лицо / т. Д.).

Вы создаете «таблицу» для каждой объединяемой электронной таблицы. Вы создаете «запрос», который вытягивает нужные столбцы на один лист.


7

Пожалуйста, ознакомьтесь с надстройкой мастера консолидации рабочих таблиц для Excel

Надстройка имеет несколько режимов слияния, один из которых делает именно то, что вам нужно.

Пожалуйста, смотрите эту ссылку для подробного описания режима (как объединить листы с одинаковым именем в один)

Надстройка является условно-бесплатной, но она имеет 15-дневную полнофункциональную пробную версию (кнопка «Загрузить» вверху страницы), так что вы можете бесплатно объединить тысячи ваших рабочих книг :)



4

Вот решение в Python.

import glob
import pandas as pd

path = "<path to files>"
file_identifier = "*.xlsx"

all_data = pd.DataFrame()
for f in glob.glob(path + "/*" + file_identifier):
    df = pd.read_excel(f)
    all_data = all_data.append(df,ignore_index=True)

Всегда удивляешься тому, что ты можешь сделать с несколькими строками Python!
TimoSolo

1
чтобы записать файл, используйте что-то вроде этого: writer = pd.ExcelWriter('merged.xlsx', engine='xlsxwriter') \n all_data.to_excel(writer, sheet_name='Sheet1') \n writer.save()
TimoSolo

0
  1. Откройте все книги Excel в одном экземпляре Excel.
    • Возможно, вам придется нажать внутреннюю кнопку «Восстановить», чтобы увидеть отдельные рабочие книги.
  2. Выберите все листы, которые вы хотите переместить, Ctrlнажав + на вкладках листа.
  3. Щелкните правой кнопкой мыши на одной из выбранных вкладок и выберите « Переместить» или «Копировать» ...
  4. В появившемся диалоговом окне выберите целевую рабочую книгу (вашу «основную» рабочую книгу), а затем выберите место для их вставки.
    • Опция (перейти в конец), скорее всего, то, что вам нужно, но вы всегда можете изменить их порядок позже.
    • Выберите Создать копию, если вы не хотите, чтобы листы были удалены из первой рабочей книги.
  5. Нажмите ОК .

Выбранные рабочие листы будут перемещены или скопированы из исходной рабочей книги в вашу рабочую книгу «Master». Просто закройте исходную книгу и сделайте это снова со следующей, пока вы не соберете все нужные вам листы в одну большую книгу. Обязательно сохраните!


Да, работает с Excel 2010.
Кекс Доз
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.