![](https://products-qa.fileformat.com/zh/spreadsheet/python/pyexcel/header-image.png)
PyExcel
用于电子表格的开源 Python 库
通过 Python API 读取、创建、合并和过滤 CSV、ODS、XLS、XLSX 和 XLSM 电子表格文件中的数据。
PyExcel 是一个开源的单一 Python API,支持使用多种流行的电子表格格式。它使软件程序员能够以 CSV、ODS、XLS、XLSX 和 XLSM 文件格式读取、操作和写入数据。 API 非常关注数据而不是文件格式。该库通过提供通用编程接口帮助 Web 开发人员处理大多数 excel 文件格式。
从 MS Excel 文件中获取或导出数据非常容易。大多数情况下,它需要单行代码才能从 excel 文件中获取数据。只有一个 API 可以读取和写入各种 excel 文件格式的数据。 API 完全支持几个重要功能,例如读取和更新电子表格中的数据、将所有 Excel 文件合并到一个目录中、拆分工作簿、从工作簿中提取工作表、合并行和单元格、设置列样式、添加或删除列来自工作表、数据过滤等等。 API 提供了外部插件支持的文件格式列表。您可以使用 pip 添加或删除插件。
PyExcel 入门
首先,您需要在系统上安装 Python 2.6 或更高版本。推荐的安装方式是通过 pip。请使用以下命令。
通过 PIP 命令安装 PyExcel
pip install pyexcel
用于处理 Excel 电子表格的 Python API
PyExcel API 使软件开发人员能够访问、读取、写入和操作各种 Excel 格式的数据,例如 CSV、ODS、XLS、XLSX 和 XLSM。使用 PyExcel API 从 Excel 文件中导入或导出数据非常容易。它支持向现有文件添加新行、更新现有文件中的行、向现有文件添加或更新列、合并或拆分工作表、搜索数据、将 Excel 文件转换为其他格式等等。
通过Python API添加新Row到现有的扩展表格文件
import pyexcel as pe
sheet = pe.get_sheet(file_name="example.xls")
sheet.row += [12, 11, 10]
sheet.save_as("new_example.xls")
pe.get_sheet(file_name="new_example.xls")
合并和拆分 Excel 工作表
PyExcel API 使开发人员能够将分散在目录中的文件合并到单个 Excel 工作簿中。每个文件都将成为工作簿中的一个工作表。它还提供与 XLS、CSV、XLSM 和 ODS 等其他 Excel 格式混合和匹配的功能。它还有助于您将工作簿拆分为多个文件。假设您有一本书包含多个工作表,通过使用开源 PyExcel 库,您可以将每个工作表分成一个工作表 Excel 文件。
通过PythonAPI合并或分离Excel文件
//merge two files into one file
from pyexcel.cookbook import merge_two_files
merge_two_files("example.csv", "example.xls", "output.xls")
//Split a workbook into single sheet files
from pyexcel.cookbook import split_a_book
split_a_book("megabook.xls", "output.xls")
import glob
outputfiles = glob.glob("*_output.xls")
for file in sorted(outputfiles):
print(file)
电子表格中的数据过滤
PyExcel API 为开发人员提供了根据自己的需要过滤数据的功能。假设您有大量数据,并且想要从中过滤掉一些数据。使用 API,您可以轻松做到这一点。它还支持从工作表中过滤空行或列。您还可以将过滤器数据保存到另一个文件中。
如何在Python应用程序中从Excel表格中滤出空白的Ross
import pyexcel as pe
sheet = pe.Sheet([[1,2,3],['','',''],['','',''],[1,2,3]])
//define filter
def filter_row(row_index, row):
result = [element for element in row if element != '']
return len(result)==0
// Apply filter
del sheet.row[filter_row]