Używam biblioteki EPPlus do odczytu / zapisu plików Excel: http://epplus.codeplex.com/
Próbuję po prostu scalić niektóre komórki podczas pisania dokumentu:
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;
}
}
Istnieje właściwość o nazwie Merge, która po prostu zwraca wartość true lub false. Pomyślałem, że może to scaliłoby komórki, ale tak nie jest.
Czy ktoś wie, jak to zrobić?
Jeśli chcesz dynamicznie scalać komórki, możesz również użyć:
Wszystkie te zmienne są liczbami całkowitymi.
źródło
Możesz utworzyć metodę rozszerzenia:
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; }
Możesz tego używać tak, jak w przypadku międzyoperacyjności:
źródło