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

如何从Excel取数至Python,实现按4位站点名匹配填充B-Q列数据

解决方案:Excel数据导入与自动填充实现

1. 从Excel电子表格导入数据到Python

最实用的方案是用pandas配合openpyxl(处理.xlsx格式),步骤如下:

  • 先安装依赖库:

    pip install pandas openpyxl
    
  • 读取Excel文件的示例代码:

    import pandas as pd
    
    # 替换为你的Excel文件实际路径
    excel_path = "你的文件路径.xlsx"
    # 读取指定工作表,默认读取第一个sheet
    df = pd.read_excel(excel_path, sheet_name="Sheet1", engine="openpyxl")
    
    # 查看前5行数据,验证导入是否成功
    print(df.head())
    

如果你的文件是旧版.xls格式,把engine参数换成xlrd,记得先安装兼容版本:pip install xlrd==1.2.0(新版xlrd不再支持.xls)。

2. 输入4位站点名自动填充B-Q列数据

基于导入的DataFrame,分两种常见场景实现需求:

场景1:Python脚本内查询填充

写一个查询函数,输入站点名后直接返回对应B-Q列的数据,还能按需写回Excel:

def get_site_info(site_code, df):
    # 匹配A列的站点名,提取B到Q列(索引1到16,列从0开始计数)
    matched_data = df[df.iloc[:, 0] == site_code].iloc[:, 1:16]
    if not matched_data.empty:
        # 转为字典格式,方便后续使用
        return matched_data.to_dict('records')[0]
    else:
        return f"未找到站点{site_code}的对应数据"

# 示例调用:交互式输入站点名并返回结果
input_site = input("请输入4位站点名称:")
result = get_site_info(input_site, df)
print(result)

# 可选:将结果写入Excel指定行(比如第20行的B-Q列)
from openpyxl import load_workbook
wb = load_workbook(excel_path)
ws = wb.active
target_row = 20

if isinstance(result, dict):
    col_num = 2  # B列对应openpyxl的列索引2
    for val in result.values():
        ws.cell(row=target_row, column=col_num, value=val)
        col_num += 1
wb.save(excel_path)

场景2:在Excel内直接实现自动填充(无需运行Python)

如果希望在Excel里输入站点名就自动填充,可以用Python给单元格批量设置VLOOKUP公式:

from openpyxl import load_workbook

wb = load_workbook(excel_path)
ws = wb.active

# 假设在B2单元格输入站点名,要在C2到R2自动填充对应B-Q数据
for col_idx in range(3, 18):  # C到R列对应索引3到17
    ws.cell(row=2, column=col_idx).value = f'=VLOOKUP($B$2, $A:$Q, {col_idx}, FALSE)'

wb.save(excel_path)

设置完成后,在Excel的B2输入4位站点名,C2到R2会自动填充对应行的B-Q列数据。

内容的提问来源于stack exchange,提问作者mr.rm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:15:28