Jak załadować arkusz kalkulacyjny w Python

Jak załadować arkusz kalkulacyjny w Python

Ten przewodnik pokazuje, jak załadować pliki arkuszy kalkulacyjnych XLSX i CSV w Python przy użyciu Workbook, uzyskać dostęp do arkuszy za pomocą get_worksheet() oraz odczytać wartości komórek poprzez siatkę Worksheet.cells. Biblioteka działa w czystym Python bez Microsoft Office ani natywnych rozszerzeń.

Przewodnik krok po kroku

Krok 1: Zainstaluj pakiet

Zainstaluj pakiet FOSS Aspose.Cells z PyPI przy użyciu poniższego polecenia pip:

pip install aspose-cells-foss

Zweryfikuj instalację, importując Workbook i wyświetlając komunikat potwierdzający:

from aspose.cells_foss import Workbook
print("aspose-cells-foss is ready.")

Krok 2: Importuj wymagane klasy

Zaimportuj klasę Workbook z aspose.cells_foss, aby uzyskać dostęp do ładowania arkusza kalkulacyjnego API:

from aspose.cells_foss import Workbook

Krok 3: Załaduj skoroszyt z pliku

Przekaż ciąg ścieżki pliku do Workbook(), aby załadować istniejący arkusz kalkulacyjny. Konstruktor przyjmuje opcjonalny argument password dla chronionych plików:

from aspose.cells_foss import Workbook

wb = Workbook("report.xlsx")
print("Loaded:", wb.file_path)

Krok 4: Uzyskaj dostęp do arkusza

Użyj get_worksheet() z indeksem całkowitoliczbowym (liczonym od 0) lub ciągiem nazwy arkusza. Użyj własności worksheets, aby zobaczyć, ile arkuszy zawiera skoroszyt:

from aspose.cells_foss import Workbook

wb = Workbook("report.xlsx")

# By index
ws = wb.get_worksheet(0)

# By name
ws_named = wb.get_worksheet("Summary")

print(f"Worksheets: {len(wb.worksheets)}")
print(f"First sheet: {ws.name}")

Krok 5: Odczytaj wartości komórek

Uzyskaj dostęp do komórek za pośrednictwem własności Worksheet.cells. Użyj Cells.cell(row, col), aby pobrać Cell według jej współrzędnych wiersza i kolumny liczonych od zera. Odczytaj dane przy użyciu własności Cell.value. Użyj Cell.is_empty(), aby bezpiecznie pomijać puste komórki:

from aspose.cells_foss import Workbook

wb = Workbook("report.xlsx")
ws = wb.get_worksheet(0)
cells = ws.cells

# Read individual cells
product = cells.cell(0, 0).value   # row 0, col 0 (A1)
revenue = cells.cell(0, 1).value   # row 0, col 1 (B1)

print(f"Product: {product}")
print(f"Revenue: {revenue}")

# Safe read with empty check
cell = cells.cell(1, 0)
if not cell.is_empty():
    print(f"A2: {cell.value}")

Krok 6: Iteruj wszystkie wiersze

Użyj Cells.iter_rows(), aby przejść przez wszystkie wiersze bez znajomości wymiarów. Przekaż values_only=True, aby otrzymać zwykłe wartości Python zamiast obiektów Cell:

from aspose.cells_foss import Workbook

wb = Workbook("report.xlsx")
ws = wb.get_worksheet(0)

for row in ws.cells.iter_rows(0, None, 0, None, values_only=True):
    print(row)

Typowe problemy i rozwiązania

FileNotFoundError podczas ładowania Sprawdź, czy ścieżka jest prawidłowa i plik istnieje. Użyj pathlib.Path do przenośnych ścieżek: Workbook(str(Path("data") / "report.xlsx")).

Cell.value returns None Komórka jest pusta lub poza zakresem. Użyj Cell.is_empty() aby sprawdzić przed odczytem value. Współrzędne poza zakresem nie generują błędów — zwracają puste komórki.

Plik zabezpieczony hasłem generuje błąd Przekaż hasło jako drugi argument: Workbook("protected.xlsx", "secret").

Ładuje się tylko pierwszy arkusz podczas odczytu pliku CSV Pliki CSV zawierają pojedynczy arkusz. Użyj Workbook.load_csv(file_path) na istniejącym Workbook instancji, jeśli musisz zaimportować dane CSV do określonej pozycji arkusza, zamiast odczytywać przez Workbook() konstruktor bezpośrednio.

Nie znaleziono nazwy arkusza przy użyciu get_worksheet(name) Nazwy arkuszy są rozróżniane pod względem wielkości liter. Wypisz ws.name dla każdego indeksu w wb.worksheets aby potwierdzić dokładną nazwę przed wywołaniem get_worksheet("Name").

Najczęściej zadawane pytania

Czy to działa na Linuksie i macOS?

Tak. aspose-cells-foss jest czystym Python i działa na Windows, macOS, Linux oraz w kontenerach Docker bez żadnych natywnych rozszerzeń ani zależności systemowych.

Jakie formaty plików mogę wczytać?

Konstruktor Workbook() obsługuje pliki XLSX. Pliki CSV można wczytać, przekazując ścieżkę .csv lub wywołując Workbook.load_csv(file_path) na instancji Workbook.

Jak znaleźć ostatni wiersz zawierający dane?

Iteruj przy użyciu Cells.iter_rows() i zatrzymaj się, gdy wszystkie wartości w wierszu są None, lub użyj Cell.is_empty() na komórkach granicznych, aby wykryć, gdzie kończą się dane.

Czy mogę otworzyć skoroszyt bez znajomości jego formatu z góry?

Przekaż ścieżkę pliku do Workbook(file_path). Biblioteka wywnioskuje format z rozszerzenia pliku i nagłówków pliku. Jeśli rozszerzenie jest brakujące lub niejednoznaczne, użyj jawnej opcji formatu zapisu/odczytu.

Jak odczytać komórkę po jej literowym adresie, takim jak „B3”?

Używaj zerowo-indeksowanych liczb całkowitych dla wierszy i kolumn: B3 to wiersz 2, kolumna 1. Konwertuj literowe adresy przy pomocy ord(col_letter) - ord("A") dla jednopismennych kolumn. Na przykład, B to ord("B") - ord("A") == 1, więc cells.cell(2, 1) odpowiada B3.

Zobacz także

 Polski