如何修改Python代码从多Excel文件指定工作表提取数据
解决方案:直接读取指定工作表提取数据
针对你的需求,下面提供两种简单易行的代码修改方案,无需手动设置活动工作表,直接从Sheet2提取目标单元格数据,适合科研场景批量处理Excel文件。
方法1:使用pandas(推荐,代码简洁高效)
pandas是处理表格数据的常用库,批量读取Excel非常方便,支持.xls和.xlsx格式:
import pandas as pd import os # 存储所有文件的提取数据 data_list = [] # 替换为你的Excel文件所在文件夹路径 target_folder = "你的Excel文件文件夹路径" # 遍历文件夹下所有Excel文件 for file_name in os.listdir(target_folder): if file_name.endswith((".xlsx", ".xls")): file_path = os.path.join(target_folder, file_name) # 直接指定读取Sheet2,header=None表示不把第一行当作表头 sheet_data = pd.read_excel(file_path, sheet_name="Sheet2", header=None) # 提取A2、B2、C2:pandas索引从0开始,行1对应第2行,列0/1/2对应A/B/C列 a2_value = sheet_data.iloc[1, 0] b2_value = sheet_data.iloc[1, 1] c2_value = sheet_data.iloc[1, 2] # 把文件名和提取的数据存入列表,方便后续溯源 data_list.append({ "文件名": file_name, "A2数据": a2_value, "B2数据": b2_value, "C2数据": c2_value }) # 将汇总数据保存为新Excel文件 summary_df = pd.DataFrame(data_list) summary_df.to_excel("生物数据汇总.xlsx", index=False)
关键说明:
sheet_name="Sheet2":直接指定要读取的工作表,完全不需要管原文件的活动表是什么iloc[1, 0]:精准定位单元格,1对应第2行,0对应第1列(即A列),逻辑直观
方法2:使用openpyxl(适合精细操作Excel)
如果需要更细致地控制Excel单元格,比如读取公式计算后的结果,用openpyxl更合适(仅支持.xlsx格式):
from openpyxl import load_workbook, Workbook import os data_list = [] target_folder = "你的Excel文件文件夹路径" for file_name in os.listdir(target_folder): if file_name.endswith(".xlsx"): file_path = os.path.join(target_folder, file_name) # 加载工作簿,data_only=True表示读取单元格的计算结果而非公式 workbook = load_workbook(file_path, data_only=True) # 直接获取Sheet2工作表 sheet = workbook["Sheet2"] # 直接通过单元格坐标读取数据,和Excel操作逻辑完全一致 a2_value = sheet["A2"].value b2_value = sheet["B2"].value c2_value = sheet["C2"].value data_list.append({ "文件名": file_name, "A2数据": a2_value, "B2数据": b2_value, "C2数据": c2_value }) # 创建并保存汇总文件 summary_workbook = Workbook() summary_sheet = summary_workbook.active # 写入表头 summary_sheet.append(["文件名", "A2数据", "B2数据", "C2数据"]) # 写入提取的所有数据 for row_data in data_list: summary_sheet.append([ row_data["文件名"], row_data["A2数据"], row_data["B2数据"], row_data["C2数据"] ]) summary_workbook.save("生物数据汇总.xlsx")
新手注意事项:
- 先安装依赖库:在命令行执行
pip install pandas openpyxl - 替换代码中的
"你的Excel文件文件夹路径"为实际路径(Windows用C:/xxx/xxx,Mac/Linux用/Users/xxx/xxx) - 如果你的文件是
.xls格式,优先用pandas方案
内容的提问来源于stack exchange,提问作者danchester82
相关产品推荐
相关产品推荐

