J'utilise C# Excel Interop et tente de faire correspondre la hauteur d'une cellule fusionnée à son contenu. Ajustement automatique sur les cellules fusionnées ne peut pas être fait pour une raison quelconque, donc je le fais avec la méthode suivanteExcel - La largeur de la colonne ne correspond pas aux multiples cumulés
private void AutoFitAndMerge(Range toMerge, Range contentCell) {
// Get Width of entire Merged Cell
double width = 0.0;
foreach (Range col in toMerge.Columns) {
width += col.ColumnWidth;
}
// mimic merged cell with regular cell
var cellWidth = contentCell.ColumnWidth;
contentCell.ColumnWidth = width;
contentCell.WrapText = true;
// autofit the regular cell and copy that to merged
contentCell.Rows.AutoFit();
var wantedHeight = contentCell.RowHeight;
// set it back
contentCell.ColumnWidth = cellWidth;
toMerge.Merge();
toMerge.WrapText = true;
toMerge.RowHeight = wantedHeight;
}
Cela fonctionne bien à part au début, quand je Paramétrez la largeur sur les cellules fusionnées de la contentCell largeur totale, il ne s'additionne pas correctement.
Le problème est que la propriété contentCell finit par être légèrement plus petite, entraînant parfois le retour du contenu et l'allocation d'un espace trop important pour la cellule fusionnée. Cela se produit également dans Excel lorsque vous additionnez 2 largeurs de colonne ou plus et que vous l'attribuez à une cellule en tant que largeur, il finit par être légèrement plus petit.
Est-ce que les cellules ont une sorte de rembourrage/marge et comment en tenir compte?