利用EPPlus获取合并单元格的值(MergeCell)

利用EPPlus获取合并单元格的值(MergeCell)_第1张图片

    当我们想获取合并单元格的值的时候,例如想得到第二行A列的值的时候,如果我们直接用wSheet.Cells[2,1].value来获取值的话,得到的结果是空,因为合并单元格的值是放在合并区域的第一格的位置的,即图中的第一行A列。那么在利用EPPlus读取这些合并单元格位置的值的时候改怎么做呢,请参考一下代码。

注:该代码远行环境为EPPlus v4.0.4.0

public static string GetMegerValue(ExcelWorksheet wSheet, int row, int column)
        {
            string range = wSheet.MergedCells[row, column];
            if (range == null)
                if (wSheet.Cells[row, column].Value != null)
                    return wSheet.Cells[row, column].Value.ToString();
                else
                    return "";
            object value =
                wSheet.Cells[(new ExcelAddress(range)).Start.Row, (new ExcelAddress(range)).Start.Column].Value;
            if (value != null)
                return value.ToString();
            else
                return "";
        }
       该函数的参数wSheet是你所需要读取的单元格所在的sheet, row和column分别是你要读取的单元格的行列号。另外,由于在读取的过程中,我们是按照顺序for循环往下读的,所以我们不知道某一单元格是否属于Merge Cells,所以在函数里面会进行判断,如果不是Merge Cell则直接返回单元格的值,否则返回Merge Value.


你可能感兴趣的:(C#编程)