Как загрузить электронную таблицу в Python

Как загрузить электронную таблицу в Python

Это руководство показывает, как загрузить файлы электронных таблиц XLSX и CSV в Python с помощью Workbook, получить доступ к листам с помощью get_worksheet() и считывать значения ячеек через сетку Worksheet.cells. Библиотека работает в чистом Python без Microsoft Office или нативных расширений.

Пошаговое руководство

Шаг 1: Установите пакет

Установите FOSS-пакет Aspose.Cells из PyPI, используя команду pip ниже:

pip install aspose-cells-foss

Проверьте установку, импортировав Workbook и выведя сообщение подтверждения:

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

Шаг 2: Импортировать необходимые классы

Импортируйте класс Workbook из aspose.cells_foss, чтобы получить доступ к загрузке таблицы API:

from aspose.cells_foss import Workbook

Шаг 3: Загрузить книгу из файла

Передайте строку пути к файлу в Workbook(), чтобы загрузить существующую таблицу. Конструктор принимает необязательный аргумент password для защищённых файлов:

from aspose.cells_foss import Workbook

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

Шаг 4: Доступ к листу

Используйте get_worksheet() с целочисленным индексом (нумерация с нуля) или строкой имени листа. Используйте свойство worksheets, чтобы увидеть, сколько листов содержит книга:

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}")

Шаг 5: Чтение значений ячеек

Получайте доступ к ячейкам через свойство Worksheet.cells. Используйте Cells.cell(row, col), чтобы получить Cell по её координатам строки и столбца с нулевой основанием. Читайте данные с помощью свойства Cell.value. Используйте Cell.is_empty(), чтобы безопасно пропускать пустые ячейки:

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}")

Шаг 6: Перебрать все строки

Используйте Cells.iter_rows(), чтобы пройти по всем строкам, не зная размеров. Передайте values_only=True, чтобы получать простые значения Python вместо объектов 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)

Распространённые проблемы и решения

FileNotFoundError при загрузке Проверьте, что путь правильный и файл существует. Используйте pathlib.Path для переносимых путей: Workbook(str(Path("data") / "report.xlsx")).

Cell.value returns None Ячейка пуста или находится за пределами диапазона. Используйте Cell.is_empty() для проверки перед чтением value. Координаты за пределами диапазона не вызывают ошибок — они возвращают пустые ячейки.

Файл, защищённый паролем, вызывает ошибку Передайте пароль в качестве второго аргумента: Workbook("protected.xlsx", "secret").

Загрузка происходит только первого листа при чтении CSV Файлы CSV содержат один лист. Используйте Workbook.load_csv(file_path) на существующем Workbook экземпляре, если вам нужно импортировать данные CSV в конкретную позицию листа, а не читать через Workbook() конструктор напрямую.

Имя листа не найдено с get_worksheet(name) Имена листов чувствительны к регистру. Выведите ws.name для каждого индекса в wb.worksheets чтобы подтвердить точное имя перед вызовом get_worksheet("Name").

Часто задаваемые вопросы

Работает ли это на Linux и macOS?

Да. aspose-cells-foss — это чистый Python и работает на Windows, macOS, Linux и в Docker-контейнерах без каких-либо нативных расширений или системных зависимостей.

Какие форматы файлов я могу загрузить?

Конструктор Workbook() поддерживает файлы XLSX. Файлы CSV можно загрузить, передав путь .csv или вызвав Workbook.load_csv(file_path) у экземпляра Workbook.

Как найти последнюю строку с данными?

Итерируйте с помощью Cells.iter_rows() и останавливайтесь, когда все значения в строке равны None, либо используйте Cell.is_empty() на граничных ячейках, чтобы определить, где заканчиваются данные.

Могу ли я открыть книгу без предварительного знания её формата?

Передайте путь к файлу в Workbook(file_path). Библиотека определяет формат по расширению файла и заголовкам. Если расширение отсутствует или неоднозначно, используйте явный параметр формата сохранения/загрузки.

Как прочитать ячейку по её буквенной адресе, например “B3”?

Используйте нулевые индексы для строк и столбцов: B3 — это строка 2, столбец 1. Преобразуйте буквенные адреса с помощью ord(col_letter) - ord("A") для односимвольных столбцов. Например, B равно ord("B") - ord("A") == 1, поэтому cells.cell(2, 1) соответствует B3.

См. также:

 Русский