J'utilise la bibliothèque EPPlus pour lire/écrire des fichiers Excel: http://epplus.codeplex.com/
J'essaie simplement de fusionner certaines cellules lors de l'écriture 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 existe une propriété nommée Merge qui renvoie simplement true ou false. J'ai pensé que cela fusionnerait peut-être les cellules, mais ce n'est pas le cas.
Quelqu'un sait-il comment faire ça?
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;
}
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.
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();