Jak scalić dane z wielu plików Excela w pojedynczy plik Excel lub uzyskać dostęp do bazy danych?

13

Mam kilkadziesiąt plików Excela, które są w tym samym formacie (tj. 4 arkusze na plik Excel). Muszę połączyć wszystkie pliki w jeden plik główny, który musi zawierać tylko 2 z 4 arkuszy. Odpowiednie arkusze z każdego pliku Excel są nazywane dokładnie tak samo, jak nagłówki kolumn.

Podczas gdy każdy plik ma taką samą strukturę, informacje w arkuszach 1 i 2 (na przykład) są różne. Dlatego nie można go połączyć w jeden plik ze wszystkim w jednym arkuszu!

Nigdy wcześniej nie korzystałem z VBA i zastanawiam się, gdzie mógłbym zacząć to zadanie!

lalabeans
źródło

Odpowiedzi:

3

Ponieważ chciałeś je na jednym arkuszu, myślę, że powyższe nie jest tym, czego szukałeś.

Używam Microsoft Access do scalania danych. Zwłaszcza jeśli różne arkusze mają podobny identyfikator (numer części / osoba kontaktowa / itd.).

Tworzysz „tabelę” dla każdego arkusza kalkulacyjnego, który ma zostać scalony. Tworzysz „kwerendę”, która przenosi żądane kolumny do jednego arkusza

Agent-311
źródło
7

Zobacz dodatek Consolidate Worksheets Wizard dla programu Excel

Dodatek ma kilka trybów scalania, jeden z nich robi dokładnie to, czego potrzebujesz.

Proszę zobaczyć ten link, aby uzyskać szczegółowy opis trybu (jak połączyć arkusze o tej samej nazwie do jednego)

Dodatek jest shareware, ale ma 15-dniową, w pełni funkcjonalną wersję próbną (przycisk pobierania u góry strony), dzięki czemu możesz łączyć tysiące skoroszytów za darmo :)

Alex Frolov
źródło
5

Oto rozwiązanie w 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)
abalter
źródło
1
zawsze zadziwiałam, co możesz zrobić za pomocą kilku linii Pythona!
TimoSolo,
2
aby zapisać plik, użyj czegoś takiego: writer = pd.ExcelWriter('merged.xlsx', engine='xlsxwriter') \n all_data.to_excel(writer, sheet_name='Sheet1') \n writer.save()
TimoSolo,
0
  1. Otwórz wszystkie skoroszyty programu Excel w tym samym wystąpieniu programu Excel.
    • Może być konieczne kliknięcie wewnętrznego przycisku „przywróć”, aby wyświetlić poszczególne skoroszyty.
  2. Wybierz wszystkie arkusze, które chcesz przenieść, Ctrlklikając + Karty zakładki arkusza.
  3. Kliknij prawym przyciskiem myszy jedną z wybranych kart i wybierz Przenieś lub Kopiuj ...
  4. W wyświetlonym oknie dialogowym wybierz docelowy skoroszyt (skoroszyt „główny”), a następnie wybierz miejsce, w którym chcesz je wstawić.
    • Opcja (przejście do końca) jest prawdopodobnie tym, czego chcesz, ale zawsze możesz zmienić ich kolejność później.
    • Wybierz opcję Utwórz kopię, jeśli nie chcesz, aby arkusze były usuwane z pierwszego skoroszytu
  5. Kliknij OK .

Wybrane arkusze zostaną przeniesione lub skopiowane z oryginalnego skoroszytu do skoroszytu „wzorcowego”. Po prostu zamknij źródłowy wookbook i zrób to ponownie z następnym, aż zgromadzisz wszystkie arkusze, na których Ci zależy, w jednym dużym wookbooku. Pamiętaj, aby zapisać!

Darth Android
źródło
Tak, działa z programem Excel 2010.
Keks Dose