Zellen mit EPPlus zusammenführen?

92

Ich verwende die EPPlus-Bibliothek zum Lesen / Schreiben von Excel-Dateien: http://epplus.codeplex.com/

Ich versuche, beim Schreiben eines Dokuments einfach einige Zellen zusammenzuführen:

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

Es gibt eine Eigenschaft namens Merge, die einfach true oder false zurückgibt. Ich dachte, das würde vielleicht die Zellen zusammenführen, aber das tut es nicht.

Weiß jemand, wie man das macht?

Steven
quelle

Antworten:

163

Sie müssen es so verwenden:

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

anstatt:

using (ExcelRange rng = ws.Cells["A1:C1"])
{
    bool merge = rng.Merge;
}
Carles Company
quelle
Wie kann ich die dynamischen Parameter übergeben, um die Zellen in vb.net zusammenzuführen
Hari
Würde das funktionieren, wenn ich das Gegenteil tun wollte? Zellen entfernen.
NikosV
Wie füge ich Spalten basierend auf der Bedingung zusammen?
Prashant Pimpale
1
@PrashantPimpale Ich verstehe deine Frage nicht. Beachten Sie, dass Zellen in dem Bereich, den Sie zusammenführen möchten, benachbart sein müssen.
Carles Company
2
Nur als zusätzliche Info hier. Nach dem Zusammenführen wird nur der
Zellenwert ganz
76

Wenn Sie Zellen dynamisch zusammenführen möchten, können Sie auch Folgendes verwenden:

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

Alle diese Variablen sind ganze Zahlen.

Mayank
quelle
7

Sie können eine Erweiterungsmethode erstellen:

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

Sie können dies wie über Interop verwenden:

range.Merge();
Paul Cassidy
quelle