NPOI合并的单元格无法穿透文本

时间:2018-08-21 18:22:40

标签: c# excel

我正在使用NPOI组件从动态数据构建Excel电子表格,但是,只有第一个合并的单元格才显示文本。

在下面的代码中,我仅将循环限制为前两个单元格,因为我试图弄清楚为什么不编写文本。如上所述,数据是动态的,来自第三方服务。

var mergedrow = excel.CreateRow(0); // used for the merged text
var headerrow = excel.CreateRow(1); // used for the row containing the actual header text

var firstcol = 0;
var lastcol = 0;

for (var i = 0; i < headers.Count; i++)
{
    if (i < 2)
    {
        ICell mergedcell = null;
        var header = headers[i];

        if (i == 0)
        {
            firstcol = 0;
            mergedcell = mergedrow.CreateCell(0);
        }
        else
        {
            var column = header.TableHeaders.Count + 1; // start from the last merged column length
            mergedcell = mergedrow.CreateCell(column);
            firstcol = lastcol + 1;
        }

        lastcol = firstcol + (header.TableHeaders.Count - 1);
        mergedcell.SetCellValue(header.Text);
        excel.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, firstcol, lastcol));

        for (var j = 0; j < header.TableHeaders.Count; j++)
        {
            var h = header.TableHeaders.ToList();

            ICell headercell = null;

            if (firstcol == 0)
            {
                headercell = headerrow.CreateCell(0);
            }
            else
            {
                headercell = headerrow.CreateCell(firstcol + j);
            }

            headercell.SetCellValue(h[j].Text);
        }
    }
}

此循环在Excel中创建以下输出:

enter image description here

如您所见,合并的第二个单元格的文本值为空白,但我在循环中设置了该单元格值。

0 个答案:

没有答案