You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Openpyxl按Excel单元格值条件筛选追加数据到另一文件

Openpyxl 实现Excel条件数据追加方案

前置依赖安装

  • 首先确保Python环境已安装openpyxl库,打开终端执行以下命令完成安装:
    pip install openpyxl

实现逻辑

  • 加载源Excel(文件1),遍历A列所有带数据的单元格
  • 筛选出A列值等于'x'的行,提取该行B列的对应数值
  • 加载目标Excel(文件2),定位到现有数据的末尾行,将符合条件的行数据追加写入目标表的A、B列区域
  • 保存修改后的目标文件,完成操作

完整实现代码

from openpyxl import load_workbook

# --------------- 以下配置项请替换为你本地的实际参数 ---------------
source_file_path = "你的源Excel文件1完整路径.xlsx"
target_file_path = "你的目标Excel文件2完整路径.xlsx"
source_sheet = "Sheet1"  # 源文件中取数的工作表名称
target_sheet = "Sheet1"  # 目标文件中写入数据的工作表名称
# -------------------------------------------------------------

# 加载源文件,data_only=True读取单元格实际展示的值而非公式
wb_source = load_workbook(source_file_path, data_only=True)
ws_source = wb_source[source_sheet]

# 加载目标文件
wb_target = load_workbook(target_file_path)
ws_target = wb_target[target_sheet]

# 遍历源文件A、B列所有行数据
for row_val in ws_source.iter_rows(min_col=1, max_col=2, values_only=True):
    a_val, b_val = row_val
    # 匹配A列值为'x'的行,若需要忽略大小写/前后空格,可替换为 str(a_val).strip().lower() == 'x'
    if a_val == 'x':
        # 定位到目标表下一个空行
        write_row = ws_target.max_row + 1
        # 写入对应列:A列写入匹配到的'x',B列写入对应数值
        ws_target.cell(row=write_row, column=1, value=a_val)
        ws_target.cell(row=write_row, column=2, value=b_val)

# 保存修改
wb_target.save(target_file_path)

# 关闭工作簿释放资源
wb_source.close()
wb_target.close()
print("数据追加完成")

使用注意事项

  • 运行代码前请关闭两个Excel文件,避免文件被占用导致写入失败
  • 代码会自动识别目标表现有数据的最后一行位置,不会覆盖原有内容
  • 如果只需要把B列的数值写入目标文件,不需要同步写入'x',删除代码中ws_target.cell(row=write_row, column=1, value=a_val)这一行即可

内容的提问来源于stack exchange,提问作者Lote_marsk_chozey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:51:25