C#代码获取word模板的编号,并获取对应的列值

问题遇到的现象和发生背景

代码根据模板的所在列的顺序读取对应的列值

问题相关代码,请勿粘贴截图
  ExcelWorksheet ws = p.Workbook.Worksheets[1];
if (CostFactCommon.GetCellValue(ws.Cells[r, 14]).ToString().Trim() != "3" &&
                                CostFactCommon.GetCellValue(ws.Cells[r, 14]).ToString().Trim() != "9" &&
                                CostFactCommon.GetCellValue(ws.Cells[r, 14]).ToString().Trim() != "")
                            {
                                res["result"] = "0";
                                res["message"] = string.Format("第{0}行,列【3/9区分-BASE】的值只能选择3或9,请检查!", r);
                                return res;
                            }
 public static object GetCellValue(ExcelRange er)
        {
            object o = er.Value;
            if (o == null)
            {
                o = string.Empty;
            }

            return o;
        }

img

运行结果及报错内容
我的解答思路和尝试过的方法

已知是否估算编号是6 代码里就是获取的6,要是我在是否估算前面加一列,那我后面的都要加1,不然读取的编号是前面一个编号编号的值,程序就会异常。

我想要达到的结果

我增加一列,有什么方法能把改动做到最小,不需要每个列的编号都要加1。

这样的话,你可以先根据表头 确定是哪一列记下索引值,然后下面的行就根据这个索引获取就可以了

你好,
没有什么办法,你是Excel,只能获取每列的编号。如果你是datatable 什么的,可以直接获取列名,也就无需修改编号了。