Работа с данными Excel в Python часто требует извлечения определенных строк и столбцов в формат списка. Преобразование диапазона Excel в список Python чрезвычайно полезно для задач, таких как:

  • Анализ данных с помощью Pandas и NumPy
  • Автоматизация отчетности и процессов ETL
  • Интеграция с моделями машинного обучения или API

В этой статье мы шаг за шагом научимся, как конвертировать заданный диапазон Excel в список в Python.

Библиотека для преобразования Excel в список на Python

Вместо того чтобы вручную анализировать файлы Excel, разработчики могут использовать Aspose.Cells for Python через .NET, мощную библиотеку для конвертации Excel в список. Она не только упрощает извлечение диапазонов, строк и столбцов в списки Python, но и поддерживает такие расширенные функции, как формулы, форматирование, диаграммы и сводные таблицы, обеспечивая точность даже с сложными электронными таблицами.

Перед кодированием убедитесь, что ваша настройка готова:

  1. Установите Python 3.7+.
  2. Скачать Aspose.Cells из релизов или установите его с помощью pip:
pip install aspose-cells-python
  1. Подготовьте образец файла Excel (sampledata.xlsx) со следующим содержимым:
Конвертация Excel в список в Python: файл образца данных

Пример файла данных Excel.

Перевести диапазон Excel в список Python: Пошаговое руководство

Давайте пройдемся по процессу преобразования диапазона данных Excel в список Python с использованием Aspose.Cells for Python.

Следуйте шагам ниже, чтобы преобразовать диапазон Excel в список на Python:

  1. Сначала загрузите существующий файл Excel, используя класс Workbook.
  2. Второе, получите первый лист.
  3. Далее создайте диапазон, например, A1 до C4.
  4. После этого преобразуйте диапазон в список Python.
  5. Наконец-то распечатайте список.

Следующий скрипт на Python загружает файл Excel, определяет диапазон и преобразует его в список Python.

from aspose.cells import Workbook

# Шаг 1: Загрузите рабочую книгу Excel
book = cells.Workbook("sample_data.xlsx")

# Шаг 2: Получите доступ к первому листу рабочего файла
sheet1 = book.worksheets.get(0)

# Шаг 3: Определите диапазон (A1:C4 в этом примере)
sheet_cells = sheet1.cells
range_obj = sheet_cells.create_range("A1", "C4")

# Шаг 4: Преобразуйте диапазон в вложенный список Python
range_list = []
for row_index in range(range_obj.first_row, range_obj.first_row + range_obj.row_count):
    row = []
   for column_index in range(range_obj.first_column, range_obj.first_column + range_obj.column_count):
        curr_cell = sheet_cells.check_cell(row_index, column_index)
        row.append(curr_cell.value if curr_cell else "")
    range_list.append(row)

# Шаг 5: Напечатайте список Python
print("Python List Output:")
print(range_list)

Output

Python List Output:
[['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036], ['Detroit', 'Central', 3074]]

Этот полный скрипт показывает, как извлечь данные из Excel и преобразовать их в список Python. После этого их можно легко преобразовать в Pandas или JSON в зависимости от ваших требований.

Преобразование списка Python в DataFrame Pandas

С помощью Pandas вы можете напрямую преобразовать список в DataFrame:

import pandas as pd

# Convert to a Pandas DataFrame
df = pd.DataFrame(range_list[1:], columns=range_list[0])
print(df)

Вывод DataFrame Pandas:

       City   Region  Store
0   Chicago  Central   3055
1  New York     East   3036
2   Detroit  Central   3074

Сохранить список Python в формате JSON

Вы можете также экспортировать данные в формате JSON:

import json

# Convert to JSON
json_output = json.dumps(range_list)
print(json_output)

JSON Output:

[["City", "Region", "Store"], ["Chicago", "Central", 3055], ["New York", "East", 3036], ["Detroit", "Central", 3074]]

Преобразование строки Excel в список на Python

Иногда вам может понадобиться извлечь всего одну строку из Excel и сохранить ее в виде списка. Вот как это сделать с помощью Aspose.Cells:

  1. Загрузите книгу Excel.
  2. Получите доступ к целевому рабочему листу.
  3. Выберите строку по индексу.
  4. Соберите значения строки в список Python.
# Импортируйте библиотеку Aspose.Cells
from aspose.cells import Workbook

# Шаг 1: Загрузите рабочую книгу Excel из файла
book = Workbook("sample_data.xlsx")

# Шаг 2: Получите доступ к первому листу в книгеworkbook
sheet = book.worksheets.get(0)

# Шаг 3: Определите индекс строки (0 = первая строка, которая содержит заголовки)
row_index = 0
cells = sheet.cells

# Создайте объект диапазона для выбранной строки
row_range = cells.create_range(row_index, 0, 1, sheet.cells.max_column + 1)

# Шаг 4: Преобразуйте строку в список Python
row_list = []
for column_index in range(row_range.first_column, row_range.first_column + row_range.column_count):
    curr_cell = cells.check_cell(row_index, column_index)  # Get each cell in the row
    row_list.append(curr_cell.value if curr_cell else "")  # Append value or empty string if cell is blank

# Напечатайте извлечённую строку в виде списка
print("Row to List:", row_list)

Output:

Row to List: ['City', 'Region', 'Store']

Преобразование столбца Excel в список в Python

Вы также можете извлечь один столбец в список. Например, давайте преобразуем столбец Region в список:

  1. Загрузите рабочую книгу и лист.
  2. Выберите столбец по индексу.
  3. Проведите обход каждой строки в столбце.
  4. Соберите значения столбца в список.
# Импорт библиотеки Aspose.Cells
from aspose.cells import Workbook

# Шаг 1: Загрузите книгу Excel из файла
book = Workbook("sample_data.xlsx")

# Получите доступ к первому листу в книге.
sheet = book.worksheets.get(0)

# Шаг 2: Определите индекс столбца (0 = первый столбец, т.е. Столбец A)
col_index = 0
cells = sheet.cells

# Создайте объект диапазона для выбранного столбца
# Параметры: (startrow, startcolumn, totalrows, totalcolumns)
# Здесь начните с строки 0, выберите colindex, включите все строки, и ширина = 1 колонка
col_range = cells.create_range(0, col_index, sheet.cells.max_row + 1, 1)

# Этап 3 и 4: Преобразовать столбец в список Python
col_list = []
for row_index in range(col_range.first_row, col_range.first_row + col_range.row_count):
    curr_cell = cells.check_cell(row_index, col_index)  # Get each cell in the column
    if curr_cell:  # Only add if the cell exists (ignore empty rows)
        col_list.append(curr_cell.value)

# Распечатайте извлеченный столбец в виде списка
print("Column to List:", col_list)

Output:

Column to List: ['City', 'Chicago', 'New York', 'Detroit']

Получите бесплатную лицензию

Оцените Aspose.Cells for Python через .NET без ограничений. Запросите бесплатную временную лицензию на странице лицензий.Примените ее в своем коде, чтобы убрать ограничения оценки. Протестируйте каждую функцию, включая DF в Excel, диаграммы, формулы и большие файлы.

Excel to List: Бесплатные ресурсы

Используйте следующие ресурсы, чтобы углубить свои знания, укрепить свое понимание и получить практические идеи, которые помогут вам более эффективно применить то, что вы узнали.

Заключение

Мы продемонстрировали, как преобразовать данные Excel в списки Python, извлекая диапазоны, строки и столбцы с помощью Aspose.Cells for Python через .NET. Как только данные находятся в виде списка, их можно использовать для Pandas, JSON или других задач обработки. Хотя такие библиотеки, как openpyxl или pandas.readexcel, могут извлекать диапазоны, Aspose.Cells предоставляет больше контроля над формулами, форматированием, диаграммами и объединенными ячейками, что делает её более подходящим выбором для сложных операций с Excel.

Если вам нужна помощь или у вас есть вопросы, не стесняйтесь обращаться на наш Aspose.Cells Free Support Forum.Наша команда будет рада помочь вам.

Смотрите также