将动态范围与 EPPlus 结合使用

Using dynamic ranges with EPPlus

我需要这种代码:

// sheet.Cells is an ExcelRange
sheet.Cells["A1:E1"].Merge = true;

要动态,有一个基准点:

private void CreateSection(ExcelRange basePosition)
{
    // sheet.Cells is an ExcelRange
    // E.g. if basePosition.Address is "A1", then dynamic value would be "A1:E1"
    // E.g. if basePosition.Address is "C4", then dynamic value would be "C4:G4"
    sheet.Cells["{basePosition.Address}:{basePosition.Address+4cols}"].Merge = true;
}

如何从 basePosition 构建这样的索引以与 sheet.Cells 一起使用?

为此,我会选择使用 .Offset() 函数。它既漂亮又整洁,并且节省了计算新范围所需的 row/col 索引的时间。

所以像这样的东西会给出比原来的范围低 5 行,宽 1 列的范围 basePosition:

private static void CreateSection(ExcelRange basePosition)
{
    var rangeToMerge = basePosition.Offset(0, 0, 5, 1);
    rangeToMerge.Merge = true;
}