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?

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

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.


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();
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.