使用EPPlus合并单元格?


93

我正在使用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;
    }
}

有一个名为Merge的属性,它仅返回true或false。我以为可以合并单元格,但事实并非如此。

有人知道怎么做吗?

Answers:


164

您必须像这样使用它:

ws.Cells["A1:C1"].Merge = true;

代替:

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

如何传递的动态参数合并的单元格在vb.net
哈日

如果我想相反的话,这项工作会做吗?取消合并单元格。
NikosV

如何根据条件合并列?
Prashant Pimpale '18

1
@PrashantPimpale我不明白你的问题。请记住,您要合并的区域中的单元格必须相邻。
卡尔斯公司

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

76

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

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

所有这些变量都是整数。


7

您可以创建扩展方法:

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;
}

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

range.Merge();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.