Gabungkan sel menggunakan EPPlus?

94

Saya menggunakan perpustakaan EPPlus untuk membaca / menulis file Excel: http://epplus.codeplex.com/

Saya mencoba menggabungkan beberapa sel saat menulis dokumen:

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

Ada properti bernama Merge yang mengembalikan true atau false. Saya pikir mungkin itu akan menggabungkan sel, tapi ternyata tidak.

Ada yang tahu bagaimana melakukan ini?

Steven
sumber

Jawaban:

166

Anda harus menggunakannya seperti ini:

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

dari pada:

using (ExcelRange rng = ws.Cells["A1:C1"])
{
    bool merge = rng.Merge;
}
Perusahaan Carles
sumber
Bagaimana saya bisa melewatkan parameter Dinamis untuk menggabungkan sel di vb.net
Hari
Apakah ini akan berhasil jika saya ingin melakukan yang sebaliknya? Pisahkan sel.
NikosV
Bagaimana cara menggabungkan kolom berdasarkan kondisi?
Prashant Pimpale
1
@PrashantPimpale Saya tidak mengerti pertanyaan Anda. Ingatlah bahwa sel dalam rentang yang ingin Anda gabungkan harus berdekatan.
Carles Company
2
Sekadar info tambahan disini. Hanya nilai sel paling kiri atas yang akan disimpan setelah penggabungan (nilai sel lainnya akan diabaikan)
penasaranBoy
77

Jika Anda ingin menggabungkan sel secara dinamis, Anda juga dapat menggunakan:

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

Semua variabel ini adalah bilangan bulat.

mayank
sumber
7

Anda dapat membuat metode ekstensi:

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

Anda dapat menggunakan ini seperti yang Anda lakukan melalui interop:

range.Merge();
Paul Cassidy
sumber