Paramètres de remplissage avec C++
Couleurs et motifs d’arrière-plan
Microsoft Excel peut définir les couleurs avant-plan (contour) et arrière-plan (remplissage) des cellules et les motifs d’arrière-plan.
Aspose.Cells prend également en charge ces fonctionnalités de manière flexible. Dans ce sujet, nous apprenons à utiliser ces fonctionnalités en utilisant Aspose.Cells.
Définition de couleurs et motifs d’arrière-plan
Aspose.Cells fournit une classe, Workbook, qui représente un fichier Microsoft Excel. La classe Workbook contient une collection Worksheets qui permet d’accéder à chaque feuille de calcul du fichier Excel. Une feuille de calcul est représentée par la classe Worksheet. La classe Worksheet fournit une collection Cells. Chaque élément de la collection Cells représente un objet de la classe Cell.
La classe Cell possède les méthodes GetStyle et SetStyle qui sont utilisées pour obtenir et définir la mise en forme d’une cellule. La classe Style fournit des propriétés pour définir les couleurs avant-plan et arrière-plan des cellules. Aspose.Cells fournit une énumération BackgroundType qui contient un ensemble de types prédéfinis de motifs d’arrière-plan qui sont donnés ci-dessous.
Motifs d’arrière-plan | Description |
---|---|
DiagonalCrosshatch | Représente le motif de quadrillage en diagonale |
DiagonalStripe | Représente un motif de rayures diagonales |
Gray6 | Représente un motif de gris à 6,25% |
Gray12 | Représente un motif de gris à 12,5% |
Gray25 | Représente un motif de gris à 25% |
Gray50 | Représente un motif de gris à 50% |
Gray75 | Représente un motif de gris à 75% |
HorizontalStripe | Représente un motif de rayures horizontales |
None | Représente pas d’arrière-plan |
ReverseDiagonalStripe | Représente un motif de rayures inversées diagonales |
Solid | Représente un motif solide |
ThickDiagonalCrosshatch | Représente un motif de quadrillage diagonal épais |
ThinDiagonalCrosshatch | Représente un motif de quadrillage diagonal fin |
ThinDiagonalStripe | Représente un motif de rayures diagonales fines |
ThinHorizontalCrosshatch | Représente un motif de quadrillage horizontal fin |
ThinHorizontalStripe | Représente un motif de rayures horizontales fines |
ThinReverseDiagonalStripe | Représente un motif de rayures inversées diagonales fines |
ThinVerticalStripe | Représente un motif de rayures verticales fines |
VerticalStripe | Représente un motif de rayures verticales |
Dans l’exemple ci-dessous, la couleur de premier plan de la cellule A1 est définie, mais A2 est configurée pour avoir à la fois des couleurs de premier plan et d’arrière-plan avec un motif d’arrière-plan de rayures verticales.|
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Instantiating a Workbook object
Workbook workbook;
// Adding a new worksheet to the Workbook object
int i = workbook.GetWorksheets().Add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = workbook.GetWorksheets().Get(i);
// Define a Style and get the A1 cell style
Style style = worksheet.GetCells().Get(u"A1").GetStyle();
// Setting the foreground color to yellow
style.SetForegroundColor(Color::Yellow());
// Setting the background pattern to vertical stripe
style.SetPattern(BackgroundType::VerticalStripe);
// Apply the style to A1 cell
worksheet.GetCells().Get(u"A1").SetStyle(style);
// Get the A2 cell style
style = worksheet.GetCells().Get(u"A2").GetStyle();
// Setting the foreground color to blue
style.SetForegroundColor(Color::Blue());
// Setting the background color to yellow
style.SetBackgroundColor(Color::Yellow());
// Setting the background pattern to vertical stripe
style.SetPattern(BackgroundType::VerticalStripe);
// Apply the style to A2 cell
worksheet.GetCells().Get(u"A2").SetStyle(style);
// Saving the Excel file
workbook.Save(outDir + u"book1.out.xls", SaveFormat::Excel97To2003);
std::cout << "Excel file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Important à savoir
- Pour définir la couleur d’avant-plan ou d’arrière-plan d’une cellule, utilisez les propriétés GetForegroundColor() ou GetBackgroundColor() de l’objet Style. Ces deux propriétés prendront effet seulement si la propriété Style de l’objet GetPattern() est configurée.
- La propriété GetForegroundColor() définit la couleur d’ombrage de la cellule. La propriété GetPattern() spécifie le type de motif de fond utilisé pour la couleur d’avant-plan ou d’arrière-plan. Aspose.Cells fournit une énumération, BackgroundType, qui contient un ensemble de types prédéfinis de motifs de fond.
- Si vous sélectionnez la valeur BackgroundType.None de l’énumération BackgroundType, la couleur d’avant-plan n’est pas appliquée. De même, la couleur d’arrière-plan n’est pas appliquée si vous sélectionnez les valeurs BackgroundType.None ou BackgroundType.Solid.
- Lors de la récupération de la couleur d’ombrage/remplissage d’une cellule, si Style.GetPattern() est BackgroundType.None, Style.GetForegroundColor() renverra Color.Empty.
Application d’effets de remplissage dégradé
Pour appliquer vos effets de remplissage dégradé souhaités à la cellule, utilisez la méthode SetTwoColorGradient de l’objet Style en conséquence.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::System;
int main()
{
Aspose::Cells::Startup();
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
worksheet.GetCells().Get(2, 1).PutValue(u"test");
Cell cell = worksheet.GetCells().Get(u"B3");
Style style = cell.GetStyle();
style.SetIsGradient(true);
style.SetTwoColorGradient(
Color{ 0xFF, 0xFF, 0xFF, 0xFF },
Color{ 0xFF, 0x4F, 0x81, 0xBD },
GradientStyleType::Horizontal,
1
);
style.GetFont().SetColor(Color::Red());
style.SetHorizontalAlignment(TextAlignmentType::Center);
style.SetVerticalAlignment(TextAlignmentType::Center);
cell.SetStyle(style);
worksheet.GetCells().SetRowHeightPixel(2, 53);
worksheet.GetCells().Merge(2, 1, 1, 2);
workbook.Save(outDir + u"output.xlsx");
std::cout << "File saved successfully." << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Couleurs et palette
Une palette est le nombre de couleurs disponibles pour créer une image. L’utilisation d’une palette normalisée dans une présentation permet à l’utilisateur de créer un aspect cohérent. Chaque fichier Microsoft Excel (97-2003) possède une palette de 56 couleurs qui peuvent être appliquées aux cellules, polices, quadrillages, objets graphiques, remplissages et lignes dans un graphique.
Avec Aspose.Cells, il est possible non seulement d’utiliser les couleurs existantes de la palette mais aussi des couleurs personnalisées. Avant d’utiliser une couleur personnalisée, ajoutez-la d’abord à la palette.
Ce sujet traite de l’ajout de couleurs personnalisées à la palette.
Ajout de couleurs personnalisées à la palette
Aspose.Cells prend en charge la palette de 56 couleurs de Microsoft Excel. Pour utiliser une couleur personnalisée qui n’est pas définie dans la palette, ajoutez la couleur à la palette.
Aspose.Cells fournit une classe Workbook qui représente un fichier Microsoft Excel. La classe Workbook fournit une méthode ChangePalette qui prend les paramètres suivants pour ajouter une couleur personnalisée pour modifier la palette :
- Couleur personnalisée, la couleur personnalisée à ajouter.
- Index, l’index de la couleur dans la palette que la couleur personnalisée remplacera. Doit être compris entre 0 et 55.
L’exemple ci-dessous ajoute une couleur personnalisée (Orchid) à la palette avant de l’appliquer sur une police.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
// Create a new workbook
Workbook workbook;
// Check if Orchid color is in the palette
std::cout << "Is Orchid in palette: " << workbook.IsColorInPalette(Color::Orchid()) << std::endl;
// Add Orchid color to the palette at index 55
workbook.ChangePalette(Color::Orchid(), 55);
// Verify if Orchid color is now in the palette
std::cout << "Is Orchid in palette after change: " << workbook.IsColorInPalette(Color::Orchid()) << std::endl;
// Add a new worksheet
int i = workbook.GetWorksheets().Add();
// Get the reference to the newly added worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(i);
// Access cell A1
Cell cell = worksheet.GetCells().Get(u"A1");
// Set value in cell A1
cell.PutValue(u"Hello Aspose!");
// Create a new style
Style styleObject = workbook.CreateStyle();
// Set the custom color (Orchid) to the font
styleObject.GetFont().SetColor(workbook.GetColors()[55]);
// Apply the style to the cell
cell.SetStyle(styleObject);
// Save the workbook
workbook.Save(u"out.xlsx");
Aspose::Cells::Cleanup();
return 0;
}