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-fossZweryfikuj 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 WorkbookKrok 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.