Unisci le celle usando EPPlus?


93

Sto utilizzando la libreria EPPlus per leggere / scrivere file Excel: http://epplus.codeplex.com/

Sto provando semplicemente a unire alcune celle durante la scrittura di un documento:

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

C'è una proprietà denominata Merge che restituisce semplicemente vero o falso. Ho pensato che forse questo avrebbe unito le celle, ma non è così.

Qualcuno sa come farlo?

Risposte:


164

Devi usarlo in questo modo:

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

invece di:

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

Come posso passare i parametri dinamici per unire le celle in vb.net
Hari

Funzionerebbe se volessi fare il contrario? Dividi le celle.
NikosV

Come unisco le colonne in base alla condizione?
Prashant Pimpale

1
@PrashantPimpale Non capisco la tua domanda. Tieni presente che le celle nell'intervallo che desideri unire devono essere adiacenti.
Carles Company

2
Proprio come informazioni aggiuntive qui. Solo il valore della cella più in alto a sinistra verrà mantenuto dopo l'unione (il resto dei valori della cella verrà ignorato)
CuriousBoy

76

Se vuoi unire le celle dinamicamente, puoi anche usare:

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

Tutte queste variabili sono numeri interi.


7

Puoi creare un metodo di estensione:

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

Puoi usarlo come faresti tramite interoperabilità:

range.Merge();
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.