Lors de la copy et du collage de données Excel, les colors sont perdues

Au risque de faire passer cette question dans l'oubli ou fermé comme «trop localisé», j'ai pensé que je publierais ce problème puisque mon patron se plaint constamment de ça et ça m'a fait me gratter la tête.

Nous utilisons le contrôle Infragistics NetAdvantage Excel pour créer un rapport Excel à la volée. Certaines cellules, nous ajoutons une couleur de remplissage comme ça:

sheet.Rows[i].Cells[0].CellFormat.FillPattern = FillPatternStyle.Solid; sheet.Rows[i].Cells[0].CellFormat.FillPatternForegroundColor = Color.FromArgb(127, 127, 127); 

Cela fonctionne très bien et le rapport apparaît bien:

Image de travail

Toutefois, si mon gestionnaire sélectionne toutes les cellules d'Excel, copy datatables dans le presse-papiers, puis cols ces cellules dans un autre file Excel, toutes les colors sont converties en une étrange palette 3 bits:

entrez la description de l'image ici

Maintenant, chaque couleur de remplissage est purement rouge (# FF0000), vert pur (# 00FF00), bleu pur (# 0000FF) ou jaune (# FFFF00). C'est tout ou rien d'une couleur donnée. Cet encre gris foncé devient complètement blanc.

Une chose intéressante est que si je passe et modifie manuellement la couleur de remplissage d'une de ces cellules dans Excel, puis copyr et coller, la couleur que j'ai définie manuellement est copiée parfaitement pendant que les cellules générées par Infragistics sont dérangées.

Cela se produit uniquement lors de la copy entre des files Excel, pas entre les feuilles de travail dans un document Excel. Quelqu'un at-il rencontré ce problème, ou les experts de Excel savent-ils ce qui pourrait causer cela d'un sharepoint vue technique?

C'est Excel 2007 et Infragistics Build 8.2.20082.1000.

Ceci est abordé dans NetAdvantage 2012 Volume 1 où il y a eu des modifications au model de couleur utilisé par le moteur excel. La réponse de Mike sur les forums Infragistics mentionne également cela.

Votre meilleure option pour résoudre le problème est d'utiliser le moteur excel depuis NetAdvantage 2012 Volume 1.

Donc, j'avais le même problème et je ne pouvais pas comprendre pourquoi le format copié ne passerait pas dans une autre feuille de calcul. Donc, il n'y a pas de «correctif» officiel, mais je me suis rendue count que ce n'était pas transmettre parce que j'étais dans un document Excel totalement séparé. Essentiellement, vous devez avoir votre document copyr et coller dans la même feuille Excel. Donc, alors que vous avez l'élément que vous souhaitez copyr, ouvrez votre autre feuille Excel (Fichier, Ouvrir) à partir de votre feuille de copy. Une fois que vous collez, il va maintenant contenir toutes vos formations. J'espère que cela t'aides!

Différentes versions rendront les colors différemment et cela semble être ce que vous voyez

Ceci est bien expliqué dans cet article http://answers.officewriter.com/workbook-colors-are-not-displayed-as-expected-in-older-versions-of-excel

Il existe un outil pour créer des palettes personnalisées qui devraient vous résoudre beaucoup plus facilement que la création de votre propre.

http://excelcampus.com/tools/color-palette-conversion

entrez la description de l'image ici

Les preferences Save Excel vous permettent de modifier ou de préserver les colors utilisées entrez la description de l'image ici

J'ai également trouvé une solution pour ceux qui ne veulent pas (ou ne peuvent pas se permettre) de se mettre à niveau. Il suffit de créer des classurs comme:

 Workbook b = new Workbook(WorkbookPaletteMode.StandardPalette); 

Résolvira le problème. Cependant, évidemment, vous ne pourrez pas utiliser de colors totalement personnalisées. Ils seront arrondis à la couleur standard la plus proche, ce qui était parfaitement correct dans notre cas.

Ok, je pense que j'ai ce problème après avoir eu le même problème décrit ici et d'autres endroits … vérifiez ceci! Commencez par aller à la page pour coller et Sélectionnez la page entière, passez à la zone d'printing et "effacez la zone d'printing". Ensuite, allez dans la zone de collage et supprimez les cellules, même s'il n'y a rien là-bas! Mettez en surbrillance les lignes (même s'il n'y a rien là-bas). Supprimez les lignes. Maintenant, commencez à partir de zéro et copyz-collez et vous devriez pouvoir coller en apportant toutes vos colors et formules originales!