Объединить ячейки с помощью EPPlus?


94

Я использую библиотеку 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. Я думал, может быть, это объединит ячейки, но этого не произошло.

Кто-нибудь знает, как это сделать?

Ответы:


166

Вы должны использовать это так:

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

вместо того:

using (ExcelRange rng = ws.Cells["A1:C1"])
{
    bool merge = rng.Merge;
}

Как передать динамические параметры для объединения ячеек в vb.net
Хари

Сработало бы это, если бы я хотел сделать наоборот? Разъединить ячейки.
NikosV

Как объединить столбцы по условию?
Prashant Pimpale 08

1
@PrashantPimpale Я не понимаю вашего вопроса. Имейте в виду, что ячейки в диапазоне, который вы хотите объединить, должны быть смежными.
Carles Company

2
Просто как дополнительная информация здесь. После слияния будет сохранено только самое верхнее левое значение ячейки (остальные значения ячеек будут проигнорированы)
curiousBoy

77

Если вы хотите динамически объединять ячейки, вы также можете использовать:

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

Все эти переменные целые.


7

Вы можете создать метод расширения:

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

Вы можете использовать это так же, как через взаимодействие:

range.Merge();
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.