如何在Python(Jupyter Notebook)中批量读取Excel指定单元格值并新增列
批量处理Excel文件:动态读取单元格值 + 新增固定列
依赖库安装
先确保安装所需工具库:
pip install pandas openpyxl
批量处理函数实现
以下函数可批量处理指定目录下的所有Excel文件,支持传入单元格地址读取对应值(无需硬编码),同时为每个文件新增固定值的三列:
import pandas as pd from openpyxl import load_workbook import os def batch_process_excel_files(folder_path, cell_address, exam_id="EXAM-001", subject="Maths", date="30-07-2022"): # 获取目录下所有xlsx格式文件 excel_files = [f for f in os.listdir(folder_path) if f.endswith(".xlsx")] for file_name in excel_files: file_path = os.path.join(folder_path, file_name) try: # 用openpyxl读取指定单元格的值 wb = load_workbook(file_path, read_only=True) ws = wb.active cell_value = ws[cell_address].value wb.close() # 用pandas读取完整Excel数据 df = pd.read_excel(file_path) # 新增三列并填入固定值 df["exam ID"] = exam_id df["Subject"] = subject df["Date"] = date # 保存处理后的文件(添加_processed后缀避免覆盖原文件) processed_file_name = f"{os.path.splitext(file_name)[0]}_processed.xlsx" processed_file_path = os.path.join(folder_path, processed_file_name) df.to_excel(processed_file_path, index=False) print(f"处理完成:{file_name} | 单元格{cell_address}值:{cell_value}") except Exception as e: print(f"处理失败:{file_name} | 错误:{str(e)}")
函数调用示例
在Jupyter Notebook中直接调用,替换为你的实际路径和目标单元格:
# 替换为你的Excel文件所在目录 target_folder = "./your_excel_folder" # 替换为需要读取的单元格地址(如"B3"、"D1") target_cell = "A1" batch_process_excel_files(target_folder, target_cell)
关键说明
- 动态读取单元格:通过
cell_address参数传入目标单元格地址,无需在代码中硬编码固定位置 - 批量自动化:自动遍历目录下所有
.xlsx文件,无需逐个手动处理 - 原文件保护:处理后的文件添加
_processed后缀,完全保留原文件内容 - 错误容错:捕获处理过程中的异常,打印错误信息但不中断整个批量任务
内容的提问来源于stack exchange,提问作者Syed Arsh
相关产品推荐
相关产品推荐

