Problème à l'obtention de cellule Excel couleurs d'arrière-plan en C#
Je suis en train d'obtenir la couleur d'arrière-plan de certaines cellules dans une feuille Excel en C#.
Je suis en utilisant la forme suivante code:
Excel.Range r = (Excel.Range)m_objRange[i, j];
int decValue = int.Parse(r.Interior.Color.ToString());
string hexValue = decValue.ToString("X");
Donc, je reçois le long de la valeur décimale puis-je convertir en hexadécimal pour l'utiliser dans un code html.
Maintenant, j'ai un problème à obtenir les bonnes couleurs. Par exemple:
Cas 1.
Couleur-Rouge
Retourné valeur Décimale-255
Corresponing valeur Hex - FF (ou 0000FF)
Corresponing la couleur, j'ai eu un Bleu
Cas 2.
Couleur-Bleu
Retourné valeur Décimale-16711680
Corresponing valeur Hex - FF0000
Corresponing la couleur, j'ai eu - Rouge
Cas 3.
Couleur-Vert
Retourné valeur Décimale-32768
Corresponing valeur Hex - 8000
Corresponing la couleur, j'ai eu - Blanc
Maintenant dans le cas 1, je suppose que je devrais interpréter la valeur hexadécimale de FF #FF0000 que rouge?
Dans le cas 3, je devrais interpréter en hexadécimal valeur de 8000 #008000 à obtenir est d'un vert?
Est-il un moyen où je peux obtenir directement des six chiffres hex valeur qui serait exactement la couleur que je veux?
Je suis mauvais en valeurs décimales ou je ne suis pas la conversion de décimal en hexadécimal correctement?
Et ce qui se passe dans le Cas 2? Ici, je suis arriver à six chiffres hex de la valeur, mais c'est complètement faux. FF0000 est clairement le rouge et pas bleu.
OriginalL'auteur | 2009-06-05
Vous devez vous connecter pour publier un commentaire.
Ce travail pour moi:
Je suggère de vérifier si vous êtes l'obtention de la couleur dans la bonne cellule. Assurez-vous d'avoir le bon rowNumber et numéro de colonne.
Que faire si je veux vérifier une colonne, pour chaque cellule de la colonne, si elle a un fond, supprimer la ligne entière jusqu'à ce que chaque cellule de la colonne a été vérifié?
n'a pas fonctionné pour moi 🙁
OriginalL'auteur Campinho
essayez ceci:
(attention, je n'ai pas tester ce)
Êtes-vous sûr que vous n'êtes pas à la recherche à ToOle()? Je vois FromOle() prend un int.
OriginalL'auteur yoyoyoyosef