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?

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

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.


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();
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.