2017-05-02 1 views
1

j'utiliser le code suivant pour insérer l'image dans une cellule Excel mais le résultat est pas excpectedComment aligner image dans Excel

bitmap[] ImageArray = GetImageArray(); 
bitmap currvalue = null; 
System.Windows.Forms.Clipboard.SetDataObject(ImageArray[0], true); 
currvalue = ImageArray[0]; 

currentRange.Cells.HorizontalAlignment =Excel.XlHAlign.xlHAlignCenterAcrossSelection; 
currentRange.Cells.VerticalAlignment = Excel.XlHAlign.xlHAlignCenter; 

excelWorkSheet.Paste(currentRange.Cells, currvalue); 
excelWorkSheet.Columns.AutoFit(); 

this is output

Je ne peux pas utiliser objSheet.Shapes.AddPicture();

Je veux centre de l'image aligné

+0

Pour allign vertical l'utilisation de l'image: Excel.XlVAlign au lieu de Excel.XlHAlign – Luuklag

+0

ne fonctionne toujours pas – Lucifer

Répondre

1

Il sera nécessaire d'ajuster la position de l'image dans la cellule par code, après avoir été collé à exceller seheet. Quelque chose comme ce qui suit, HTH

excelWorkSheet.Paste(currentRange.Cells, currvalue); 

foreach (var shp in excelWorkSheet.Shapes) 
{ 
    if (shp.TopLeftCell.Address != currentRange.Address) 
     continue; 
    shp.Left = shp.TopLeftCell.Left + (shp.TopLeftCell.Width - shp.Width)/2; 
    shp.Top = shp.TopLeftCell.Top + (shp.TopLeftCell.Height - shp.Height)/2; 
    break; 
} 
+0

Merci pour votre réponse Monsieur, il a parfaitement fonctionné –

+0

Monsieur, mais il y a quelques problèmes lorsque la taille de la colonne n'est pas assez grand alors l'alignement de l'image est perturbé et semble mauvais alors précédent –

+0

Si l'image est trop grande, alors on pourrait essayer de redimensionner la colonne avant de coller? – dee