使用EPPlus合并细胞?

Ste*_*ven 83 c# asp.net excel epplus

我正在使用EPPlus库来读/写Excel文件:http://epplus.codeplex.com/

我正在尝试在编写文档时简单地合并一些单元格:

using (ExcelPackage pck = new ExcelPackage())
{
    //Create the worksheet
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");

    //Format the header for column 1-3
    using (ExcelRange rng = ws.Cells["A1:C1"])
    {
        bool merge = rng.Merge;
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个名为Merge的属性只返回true或false.我想也许那会合并细胞,但事实并非如此.

有人知道怎么做吗?

Car*_*any 144

你必须像这样使用它:

ws.Cells["A1:C1"].Merge = true;
Run Code Online (Sandbox Code Playgroud)

代替:

using (ExcelRange rng = ws.Cells["A1:C1"])
{
    bool merge = rng.Merge;
}
Run Code Online (Sandbox Code Playgroud)

  • 就像这里的其他信息一样。合并后仅保留最左上角的单元格值(其余单元格值将被忽略) (2认同)

may*_*ank 67

如果要动态合并单元格,还可以使用:

worksheet.Cells[FromRow, FromColumn, ToRow, ToColumn].Merge = true;

所有这些变量都是整数.


Pau*_*idy 5

您可以创建扩展方法:

public static void Merge(this ExcelRangeBase range)
{
    ExcelCellAddress start = range.Start;
    ExcelCellAddress end = range.End;
    range.Worksheet.Cells[start.Row, start.Column, end.Row, end.Column].Merge = true;
}
Run Code Online (Sandbox Code Playgroud)

您可以像通过互操作那样使用它:

range.Merge();
Run Code Online (Sandbox Code Playgroud)