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 das geht?
Du musst es so benutzen:
ws.Cells["A1:C1"].Merge = true;
anstatt:
using (ExcelRange rng = ws.Cells["A1:C1"])
{
bool merge = rng.Merge;
}
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 Ganzzahlen.
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 bei interop verwenden:
range.Merge();