Ответ 1
Вы должны использовать его следующим образом:
ws.Cells["A1:C1"].Merge = true;
вместо:
using (ExcelRange rng = ws.Cells["A1:C1"])
{
bool merge = rng.Merge;
}
Я использую библиотеку 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. Я подумал, что, возможно, это слияние ячеек, но это не так.
Кто-нибудь знает, как это сделать?
Вы должны использовать его следующим образом:
ws.Cells["A1:C1"].Merge = true;
вместо:
using (ExcelRange rng = ws.Cells["A1:C1"])
{
bool merge = rng.Merge;
}
Если вы хотите динамически объединять ячейки, вы также можете использовать:
worksheet.Cells[FromRow, FromColumn, ToRow, ToColumn].Merge = true;
Все эти переменные являются целыми числами.
Вы можете создать метод расширения:
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;
}
Вы можете использовать это, как вы могли бы с помощью interop:
range.Merge();