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

Excel IF类查询实现及Java if查询相关使用问题咨询

实现方案

Excel 原生公式实现

两种常用写法,按需选择即可,均支持下拉批量填充到所有行:

  • 全版本兼容的IF嵌套写法
    目标行E列单元格输入公式:=IF(B2="1","ABC",IF(B2=3,"GHI",""))
    注:如果B列的1为数字格式,可将公式里的"1"修改为1匹配单元格格式,未匹配到规则时默认返回空值,可自行修改最后一对引号内的内容设置默认值。
  • 高版本Excel简化写法(支持Excel 2021、365及以上版本)
    用SWITCH函数避免多层嵌套,公式为:=SWITCH(B2,"1","ABC",3,"GHI","")

Java 处理Excel的映射实现

核心逻辑为遍历行时读取B列值做判断,赋值到E列即可,以下为通用示例:

基础if判断写法(适配POI、EasyExcel等所有Excel处理框架)

// 封装映射规则,后续新增规则只需修改这里即可
String getMappedValue(String bColumnValue) {
    if ("1".equals(bColumnValue.trim())) {
        return "ABC";
    } else if ("3".equals(bColumnValue.trim())) {
        return "GHI";
    }
    return "";
}

// Apache POI 行处理示例片段
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
    Row currentRow = sheet.getRow(i);
    // 读取B列(索引为1)的值
    String bValue = currentRow.getCell(1).getStringCellValue();
    // 赋值到E列(索引为4)
    currentRow.createCell(4).setCellValue(getMappedValue(bValue));
}

扩展优化写法(规则较多时推荐)

用HashMap存储映射关系,避免多层if嵌套,扩展性更强:

// 全局初始化映射表
private static final Map<String, String> VALUE_MAPPING = new HashMap<>();
static {
    VALUE_MAPPING.put("1", "ABC");
    VALUE_MAPPING.put("3", "GHI");
}

// 行处理时直接取值
String eValue = VALUE_MAPPING.getOrDefault(bValue.trim(), "");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:39:04