WPS表格Python脚本:读取与筛选数据实战
📅 2026/7/6 5:04:45
👁️ 阅读次数
📝 编程学习
WPS软件表格内置Py脚本编辑与运行
WPS表格内置了Python脚本编辑与运行功能,用户无需安装额外的Python环境或IDE,即可在表格中直接编写和执行Python代码。本文将围绕WPS表格内置的Py脚本功能,介绍如何使用内置的xl()函数读取单元格数据并进行列筛选输出。
1. 认识WPS表格内置Py脚本环境
WPS表格内置的Py脚本功能为表格用户提供了便捷的数据处理方式:用户可以在当前工作簿内直接编写Python代码,通过内置的xl()函数访问工作表数据。无需单独安装pandas、openpyxl等库,环境已预置常用数据分析包。
打开方式:在WPS表格顶部菜单栏中找到「效率工具」或「开发工具」,即可进入Py脚本编辑面板。
2. 使用xl()函数读取数据
xl()是WPS表格内置Py环境专门提供的函数,用于直接从当前工作簿读取指定范围的单元格数据,返回一个DataFrame对象。语法如下:
xl(cell_range, headers=True)- cell_range:字符串格式的单元格范围,如
"A1:C5"。 - headers:布尔值,表示是否将范围的第一行作为列名(表头),默认为
True。
以下代码演示如何读取A1:C5范围的数据:
# 读取表格数据 A1:C5 df2 = xl("A1:C5", headers=True) 查看数据基本信息 print("数据形状:", df2.shape) print("列名:", list(df2.columns)) print("数据预览:") print(df2.head())实战示例:员工信息表读取
假设工作表中存在如下员工信息数据(A1:D6 区域):
| 员工姓名 | 部门 | 入职日期 | 月薪 |
|---|---|---|---|
| 张三 | 技术部 | 2024-03-15 | 12000 |
| 李四 | 市场部 | 2024-06-01 | 10000 |
| 王五 | 技术部 | 2023-11-20 | 13500 |
| 赵六 | 财务部 | 2022-08-10 | 11000 |
| 孙七 | 市场部 | 2024-01-05 | 10500 |
使用xl()读取并查看数据结构及前两行:
# 实战示例:读取员工信息表 A1:D6 df_employee = xl("A1:D6", headers=True) 查看数据结构 print("数据形状:", df_employee.shape) print("列名:", list(df_employee.columns)) 显示前两行数据 print("\n前两行数据:") print(df_employee.head(2))3. 列筛选与输出
读取数据后,可以像操作标准pandas DataFrame一样对列进行筛选。下面展示如何从已读取的数据中提取产品名称和发货日期两列:
# 读取表格数据 A1:C5 df2 = xl("A1:C5", headers=True) 筛选列 df2_subset = df2[['产品名称', '发货日期']] 打印输出 print("=== 原始数据 ===") print(df2) print("\n=== 筛选后数据 ===") print(df2_subset)如果希望一次性筛选多个列,只需在列表中指定对应的列名即可:
# 多列筛选 selected_columns = ['产品名称', '发货日期', '数量'] df_multi = df2[selected_columns] print(df_multi)实战示例:基于员工信息表的条件筛选
结合上一节中员工信息表的实战案例(A1:D6),下面展示如何按条件筛选出「技术部」员工,并输出其姓名和月薪:
# 实战:读取员工信息表 A1:D6 df_emp = xl("A1:D6", headers=True) 条件筛选:部门为「技术部」的员工 tech_dept = df_emp[df_emp['部门'] == '技术部'] 输出筛选后的员工姓名和月薪 print("=== 技术部员工 ===") print(tech_dept[['员工姓名', '月薪']])4. 常用数据分析操作
在WPS内置Py环境中,同样可以使用pandas丰富的分析方法对数据进行处理、统计与清洗:
# 读取完整数据 df = xl("A1:D100", headers=True) 1. 基本统计 print("数据概览:") print(df.describe()) print("\n各列缺失值数量:") print(df.isnull().sum()) 2. 按条件筛选 high_value = df[df['销售额'] > 1000] print(f"\n销售额大于1000的记录数: {len(high_value)}") 3. 数据分组统计 if '产品名称' in df.columns and '销售额' in df.columns: product_stats = df.groupby('产品名称')['销售额'].sum().reset_index() print("\n按产品统计销售额:") print(product_stats)5. 完整示例:读取、筛选与输出
以下是一个完整的工作流示例,在WPS表格内置Py编辑器中可直接运行:
# WPS表格内置Py脚本完整示例 1. 读取表格数据 A1:C5 df2 = xl("A1:C5", headers=True) 2. 数据预览 print("=== 步骤1:读取原始数据 ===") print(df2) print(f"共 {len(df2)} 行,{len(df2.columns)} 列") 3. 筛选指定列 df2_subset = df2[['产品名称', '发货日期']] 4. 输出筛选结果 print("\n=== 步骤2:筛选后的数据 ===") print(df2_subset) 5. 简单统计 print("\n=== 步骤3:数据统计 ===") print(f"产品种类数: {df2_subset['产品名称'].nunique()}") print(f"发货日期范围: {df2_subset['发货日期'].min()} 至 {df2_subset['发货日期'].max()}")6. 使用注意事项
- 数据范围格式:
xl()函数接收的单元格范围格式为"A1:C5",确保使用英文冒号分隔起始和结束单元格。 - 列名大小写:列名严格区分大小写,筛选列时需与表格中的实际列名完全一致。
- 表头处理:如果数据区域第一行不是表头,应将
headers参数设为False,数据将以整数列索引命名。 - 大数据量处理:读取大范围数据时注意性能,建议按需读取所需行数。
- 输出结果:
print()输出会显示在Py脚本面板的结果区域,方便查看和调试。
7. 总结
WPS表格内置Py脚本功能通过xl()函数屏蔽了传统Python数据分析中的文件路径、库导入等繁琐步骤,让用户可以直接聚焦于数据处理逻辑。本文的内容可总结为三个核心步骤:
- 使用
xl("A1:C5", headers=True)读取指定范围数据 - 通过
df2[['产品名称', '发货日期']]进行列筛选 - 用
print()输出查看结果
编程学习
技术分享
实战经验