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

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;
}