如何在 Python 中加载电子表格
本指南展示了如何使用 Workbook 在 Python 中加载 XLSX 和 CSV 电子表格文件,使用 get_worksheet() 访问工作表,并通过 Worksheet.cells 网格读取单元格值。该库在纯 Python 环境下运行,无需 Microsoft Office 或本机扩展。
分步指南
步骤 1:安装软件包
使用下面的 pip 命令从 PyPI 安装 Aspose.Cells FOSS 软件包:
pip install aspose-cells-foss通过导入 Workbook 并打印确认信息来验证安装:
from aspose.cells_foss import Workbook
print("aspose-cells-foss is ready.")步骤 2:导入所需类
从 aspose.cells_foss 导入 Workbook 类,以访问电子表格加载 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() 并提供整数索引(从 0 开始)或工作表名称字符串。使用 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 路径,或在 Workbook 实例上调用 Workbook.load_csv(file_path) 来加载 CSV 文件。
如何查找最后一行有数据的行?
使用 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。