2011-05-30 6 views
54

J'utilise la bibliothèque EPPlus pour lire/écrire des fichiers Excel: http://epplus.codeplex.com/Fusionner des cellules avec EPPlus?

Je suis en train de fusionner simplement certaines cellules lors de la rédaction d'un document:

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

Il y a une propriété nommée Fusion qui simplement les retours vrai ou faux. Je pensais que peut-être que cela fusionnerait les cellules, mais ce n'est pas le cas.

Quelqu'un sait-il comment faire?

Répondre

97

Vous devez l'utiliser comme ceci:

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

au lieu de:

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

Comment puis-je passer les paramètres dynamiques pour fusionner les cellules dans vb.net – Hari

46

Si vous souhaitez fusionner des cellules dynamiquement, vous pouvez également utiliser:

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

Toutes ces variables sont des entiers.

+0

Cela a fonctionné pour moi. – vibs2006

3

Vous pouvez créer une méthode d'extension:

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

Vous pouvez l'utiliser comme vous le feriez via Interop:

range.Merge(); 
Questions connexes