Organizowanie plików może być wyzwaniem, zwłaszcza jeśli zarządzamy dużą ilością dokumentów w różnych folderach. Excel jest narzędziem, które może pomóc w tworzeniu listy plików bezpośrednio z wybranego folderu. Poniżej przedstawiam trzy metody: z wykorzystaniem Pythona, wtyczki VSTO oraz Power Query. Poniższy artykuł odpowie na pytanie postawione w tytule czyli Jak zrobić listę plików w folderze za pomocą Excel?
Python – czy da się?
Pierwszy pomysł który przychodzi na myśl to Python. Niestety Python jest zwirtualizowany w chmurze lub w maszynie WSL (jeszcze tego nie rozgryzłem) i nie mamy dostępu do danych przez import os. Myślę że jest to kwestia czasu, ponieważ Python w Excel to świeży projekt.
Warto spróbować zrobić całkowicie odrębny skrypt Python i wygenerować nim np. plik CSV.
import os import csv def list_files_in_directory(directory): file_list = [] # Sprawdzenie, czy katalog istnieje if not os.path.exists(directory): print(f"Katalog {directory} nie istnieje.") return file_list # Przejdź przez wszystkie katalogi i pliki for root, dirs, files in os.walk(directory): for file_name in files: try: file_path = os.path.join(root, file_name) file_size = os.path.getsize(file_path) file_list.append([file_name, file_path, file_size]) except PermissionError: print(f"Brak dostępu do pliku: {file_name} w katalogu {root}") return file_list def save_files_to_csv(file_list, output_csv): with open(output_csv, mode='w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) # Nagłówki kolumn writer.writerow(["File Name", "File Path", "File Size (Bytes)"]) # Zapisz każdy plik do pliku CSV for file in file_list: writer.writerow(file) print(f"Plik CSV został wygenerowany: {output_csv}") # Główna funkcja def main(): # Katalog, który chcesz zeskanować directory_path = '/' # Nazwa wyjściowego pliku CSV output_csv = 'file_listing.csv' # Uzyskaj listę plików w katalogu file_list = list_files_in_directory(directory_path) # Zapisz listę plików do pliku CSV save_files_to_csv(file_list, output_csv) # Uruchomienie głównej funkcji if __name__ == "__main__": main()
VSTO – jak stworzyć wtyczkę w C# do zbierania plików?
VSTO (Visual Studio Tools for Office) to technologia umożliwiająca tworzenie dodatków do aplikacji Office, w tym Excel. Dzięki temu możemy stworzyć wtyczkę w C#, która automatycznie zbiera pliki z folderu i wstawia je do arkusza.
Przykładowy kod C# do wtyczki VSTO, która zbiera pliki:
using System; using System.IO; using Excel = Microsoft.Office.Interop.Excel; public void ZbierzPliki(string folderPath) { var pliki = Directory.GetFiles(folderPath); Excel.Worksheet arkusz = Globals.ThisAddIn.Application.ActiveSheet; int row = 1; foreach (string plik in pliki) { arkusz.Cells[row, 1].Value = Path.GetFileName(plik); row++; } }
Ten kod pobiera listę plików z określonego folderu i wstawia ich nazwy do aktywnego arkusza Excela. Wtyczka może być rozwinięta o dodatkowe funkcje, takie jak wybór folderu przez użytkownika czy dodanie dodatkowych informacji o plikach (np. rozmiar, data modyfikacji).
Power Query – najlepsze rozwiązanie do tworzenia listy plików
Power Query to narzędzie wbudowane w Excel, które umożliwia pobieranie danych z różnych źródeł, w tym z folderów. Jest to najprostszy sposób na zebranie listy plików bez potrzeby kodowania. Wystarczy skorzystać z funkcji „Z folderu” w Power Query, aby automatycznie pobrać listę plików wraz z dodatkowymi informacjami, takimi jak rozmiar, data modyfikacji czy typ pliku.
Kroki:
- Otwórz Excel.
- Przejdź do zakładki Dane.
- Wybierz Z folderu w sekcji „Pobierz dane”.
- Wskaż folder, z którego chcesz pobrać pliki.
- Power Query automatycznie wygeneruje tabelę z listą plików.
Power Query oferuje intuicyjny interfejs i możliwość dalszej obróbki danych, co czyni go najbardziej wszechstronnym rozwiązaniem w tej sytuacji.
Podsumowanie
Każda z metod ma swoje zalety. Python pozwala na automatyzację z wykorzystaniem skryptów, VSTO umożliwia integrację bezpośrednio w środowisku Excel, a Power Query to najprostsze i najbardziej intuicyjne narzędzie, idealne dla użytkowników niezaawansowanych w programowaniu. Mam nadzieję że odpowiedzieliśmy na pytanie – jak zrobić listę plików w folderze za pomocą Excel.
Obraz StartupStockPhotos z Pixabay