Excel处理控件Aspose.Cells教程:如何将Excel区域转换为Python列表
在 Python 中处理 Excel 数据通常需要将特定的行和列提取为列表格式。将 Excel 范围转换为 Python 列表对于以下任务非常有用:
- 使用Pandas和NumPy进行数据分析
- 报告和 ETL 流程的自动化
- 与机器学习模型或 API 集成
在本教程中,我们将逐步学习如何借助Aspose.Cells在 Python 中将定义的 Excel 范围转换为列表。
Aspose.Cells官方试用版免费下载
Python Excel 到列表转换库
开发人员无需手动解析 Excel 文件,而是可以使用 Aspose.Cells for Python via .NET(一个功能强大的 Excel 到列表转换库)。它不仅可以更轻松地将范围、行和列提取到 Python 列表中,还支持公式、格式、图表和数据透视表等高级功能,即使在复杂的电子表格中也能确保准确性。
在编码之前,请确保您的设置已准备就绪:
- 安装Python 3.7+。
- 从发行版下载 Aspose.Cells或使用 pip 安装:
pip install aspose-cells-python
- sample_data.xlsx准备一个包含以下内容的示例 Excel 文件( ):
将 Excel 范围转换为 Python 列表:分步指南
让我们了解使用 Aspose.Cells for Python 将一系列 Excel 数据转换为 Python 列表的过程。
按照以下步骤将 Excel 范围转换为 Python 中的列表:
- 首先,使用该类加载现有的 Excel 文件Workbook。
- 其次,获取第一个工作表。
- 接下来,创建一个范围,例如 A1 到 C4。
- 之后,将 Range 转换为 Python List。
- 最后,打印列表。
以下 Python 脚本加载 Excel 文件,定义范围并将其转换为 Python 列表。
from aspose.cells import Workbook# Step 1: Load the Excel workbook book = cells.Workbook("sample_data.xlsx")# Step 2: Access the first worksheet sheet1 = book.worksheets.get(0)# Step 3: Define the range (A1:C4 in this example) sheet_cells = sheet1.cells range_obj = sheet_cells.create_range("A1", "C4")# Step 4: Convert the range into a nested Python list 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)# Step 5: Print the Python list print("Python List Output:") print(range_list)
输出
Python List Output: [['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036], ['Detroit', 'Central', 3074]]
此完整脚本演示了如何从 Excel 中提取数据并将其转换为 Python 列表。之后,您可以根据需要轻松地将其转换为 Pandas 或 JSON。
将 Python 列表转换为 Pandas DataFrame
使用 Pandas,您可以直接将列表转换为 DataFrame:
import pandas as pd# Convert to a Pandas DataFrame df = pd.DataFrame(range_list[1:], columns=range_list[0]) print(df)
Pandas DataFrame 输出:
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 输出:
[["City", "Region", "Store"], ["Chicago", "Central", 3055], ["New York", "East", 3036], ["Detroit", "Central", 3074]]
在 Python 中将 Excel 行转换为列表
有时您可能只想从 Excel 中提取一行并将其存储为列表。以下是使用 Aspose.Cells 的操作方法:
- 加载 Excel 工作簿。
- 访问目标工作表。
- 通过索引选择行。
- 将行值收集到 Python 列表中。
# Import Aspose.Cells library from aspose.cells import Workbook# Step 1: Load the Excel workbook from file book = Workbook("sample_data.xlsx")# Step 2: Access the first worksheet in the workbook sheet = book.worksheets.get(0)# Step 3: Define the row index (0 = first row, which contains headers) row_index = 0 cells = sheet.cells# Create a range object for the selected row row_range = cells.create_range(row_index, 0, 1, sheet.cells.max_column + 1)# Step 4: Convert the row into a Python list 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 rowrow_list.append(curr_cell.value if curr_cell else "") # Append value or empty string if cell is blank# Print the extracted row as a list print("Row to List:", row_list)
输出:
Row to List: ['City', 'Region', 'Store']
使用 Python 将 Excel 列转换为列表
您还可以将单列提取到列表中。例如,我们将“Region”列转换为列表:
- 加载工作簿和工作表。
- 通过索引选择列。
- 遍历列中的每一行。
- 将列值收集到列表中。
# Import Aspose.Cells library from aspose.cells import Workbook# Step 1: Load the Excel workbook from file book = Workbook("sample_data.xlsx")# Access the first worksheet in the workbook sheet = book.worksheets.get(0)# Step 2: Define the column index (0 = first column, i.e., Column A) col_index = 0 cells = sheet.cells# Create a range object for the selected column # Parameters: (start_row, start_column, total_rows, total_columns) # Here, start at row 0, select col_index, include all rows, and width = 1 column col_range = cells.create_range(0, col_index, sheet.cells.max_row + 1, 1)# Step 3 & 4: Convert the column into a Python list 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 columnif curr_cell: # Only add if the cell exists (ignore empty rows)col_list.append(curr_cell.value)# Print the extracted column as a list print("Column to List:", col_list)
输出:
Column to List: ['City', 'Chicago', 'New York', 'Detroit']
结论
我们演示了如何通过 .NET 使用 Aspose.Cells for Python 提取范围、行和列,将 Excel 数据转换为 Python 列表。转换为列表后,数据可用于 Pandas、JSON 或其他处理任务。虽然 openpyxl 或 pandas.read_excel 等库可以提取范围,但 Aspose.Cells 能够更好地控制公式、格式、图表和合并单元格,使其成为复杂 Excel 操作的更佳选择。