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