2010-10-28 7 views
0

En essayant de copier certaines cellules d'une feuille de classeur vers une autre feuille de classeur et de conserver le style et le formatage en utilisant C#.Récupère le style de cellule de la feuille de calcul Excel avec C#

je peux obtenir les attributs un par un comme celui-ci:

string fontName = ((Excel.Range) workSheet.Cells[3, 2]).Font.Name.ToString(); 

Mais Im cherche à façon de l'obtenir à la fois. Merci

Répondre

1

Si vous copiez la (les) cellule (s) via le presse-papier en utilisant la méthode Range.Copy Destination: =, le contenu et le formatage seront copiés. Si vous voulez juste copier la mise en forme, utilisez les formats .Copie puis .PasteSpecial

+0

Merci. C'est sur dans la bonne direction. Range1.PasteSpecial (XlPasteType.xlPasteAll, XlPasteSpecialOperation.xlPasteSpecialOperationNone, Type.Missing, Type.Missing) donnera une image qui devrait ressembler, mais bon, elle ne devrait pas être une image. Si je change le PasteType en xlPasteColumnWidth cela semble toujours juste, mais la hauteur et la largeur sont totalement désactivées. Des sugestions? – zmaster

+0

Si vous souhaitez copier à la fois le contenu des cellules et la mise en forme d'un lieu à un autre, n'utilisez paspaspecial, utilisez simplement la méthode Copy de l'objet Range avec le paramètre Destination - Worksheets ("Sheet1"). Range ("A1: D4 "). Copie destination: = Feuilles de travail (" Feuille2 "). Plage (" E5 ") Si vous souhaitez simplement copier la mise en forme mais pas le contenu, utilisez les feuilles de travail Copie et Feuillet (" Sheet1 "). Range (" C1 : C5 "). Copie Feuilles de travail (" Sheet1 "). Plage (" D1: D5 "). PasteSpecial _ Opération: = xlPasteSpecialFormats Fin avec –

+0

Lorsque j'utilise la méthode de copie, j'obtiens une erreur. Je pense que cela a quelque chose à voir avec moi en utilisant plusieurs classeurs et feuilles. J'ai fini par utiliser un hack où est l'utilisation PasteSpecial (XlPasteType.xlPasteColumnWidths, XlPasteSpecialOperation.xlPasteSpecialOperationNone, Type.Missing, Type.Missing); et définir manuellement les colonnes ColumnWidth et RowHeight. Laid mais ça marche. Merci pour l'aide. – zmaster

Questions connexes