David a raison de dire qu'Excel 2003 et les versions antérieures d'Excel sont limitées à une palette de 56 couleurs. Excel 2007 a ajouté la prise en charge des couleurs 24 bits et des couleurs de thème. Excel 2007 peut écrire des classeurs xls qui contiennent ces informations de couleur supplémentaires et qu'Excel 2003 peut lire, mais Excel 2003 sera toujours limité à la palette de 56 couleurs. Excel 2007 peut charger ces classeurs et afficher les couleurs exactes.
prend en charge les nouvelles couleurs et couleurs de thème 24 bits, ainsi que les anciennes couleurs indexées de la palette, tout comme Excel 2007. Vous pouvez utiliser SpreadsheetGear pour créer un classeur avec des couleurs 24 bits qui s'afficheront correctement dans Excel 2007 ou modifier la palette et ils s'afficheront correctement dans Excel 2007 et Excel 2003. Vous trouverez ci-dessous un exemple des deux.
Vous pouvez télécharger un essai gratuit here et l'essayer vous-même.
Disclaimer: Je possède SpreadsheetGear LLC
Voici l'exemple de code:
// Create a new empty workbook with one worksheet.
IWorkbook workbook = Factory.GetWorkbook();
// Get the worksheet and change it's name to "Person".
IWorksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "Colors";
// Put "Hello World!" into A1.
IRange a1 = worksheet.Cells["A1"];
a1.Value = "Hello World!";
a1.Font.Color = System.Drawing.Color.FromArgb(0x8C, 0xBE, 0x50);
// Save the workbook as xls (Excel 97-2003/Biff8) with default palette.
//
// This workbook will display the exact color in Excel 2007 and
// SpreadsheetGear 2009, but will only display the closest available
// palette indexed color in Excel 2003.
workbook.SaveAs(@"C:\tmp\GreenDefaultPalette.xls", FileFormat.Excel8);
// Save as xlsx/Open XML which will also display the exact color.
workbook.SaveAs(@"C:\tmp\GreenDefaultPalette.xlsx", FileFormat.OpenXMLWorkbook);
// Now, modify the palette and save. This workbook will display the exact
// color in Excel 2003 as well as in SpreadsheetGear 2009 and Excel 2007.
//
// Note that modifying the palette will change the color of any cells which
// already reference this palette indexed color - so be careful if you are
// modifying pre-existing workbooks.
workbook.Colors[0] = a1.Font.Color;
workbook.SaveAs(@"C:\tmp\GreenModifiedPalette.xls", FileFormat.Excel8);