C# EPPLUS + NPOI 读取和写入合并单元格


1. 读取合并单元格的值

如果是合并单元格读取的就是合并单元格的值,如果该单元格是普通单元格则直接取的就是单元格的值

private string GetMegerValue(ExcelWorksheet sheet, int row, int column)
        {
            var range = sheet.MergedCells[row, column];
            if (range == null)
            {
                if (sheet.Cells[row, column]?.Value != null)
                {
                    return sheet.Cells[row, column].Value.ToString().Trim();
                }
                else
                {
                    return "";
                }
            }
            Object value = sheet.Cells[(new ExcelAddress(range)).Start.Row, (new ExcelAddress(range)).Start.Column].Value;

            return value != null ? value.ToString().Trim() : "";
        }

 

2. 写入合并单元格的值

/// <summary>
        /// 合并单元格
        /// </summary>
        /// <param name="sheet">合并单元格所在的sheet</param>
        /// <param name="rowStart">开始行的索引</param>
        /// <param name="rowEnd">结束行的索引</param>
        /// <param name="colStart">开始列的索引</param>
        /// <param name="colEnd">结束列的索引</param>
        private void SetCellRangeAddress(ISheet sheet, int rowStart, int rowEnd, int colStart, int colEnd)
        {
            for (var r = rowStart; r <= rowEnd; r++)
            {
                for (var c = colStart; c < colEnd; c++)
                {
                    if (sheet.GetRow(r) == null)
                    {
                        sheet.CreateRow(r); //如果行不存在,则创建行
                    }
                    if (sheet.GetRow(r).GetCell(c) == null)
                    {
                        sheet.GetRow(r).CreateCell(c);  //如果列不存在,则创建列
                    }
                }
            }
            CellRangeAddress cellRangeAddress = new CellRangeAddress(rowStart, rowEnd, colStart, colEnd);
            sheet.AddMergedRegion(cellRangeAddress);
        }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM