Définition des en têtes et pieds de page avec C++
Définition des en-têtes et des pieds de page
Aspose.Cells vous permet d’ajouter des en-têtes et des pieds de page aux feuilles de calcul à l’exécution, mais nous recommandons de définir manuellement les en-têtes et les pieds de page dans un fichier préconçu pour l’impression. Vous pouvez utiliser Microsoft Excel comme un outil graphique pour définir les en-têtes et les pieds de page afin de gagner du temps et des efforts de développement. Aspose.Cells peut importer le fichier et enregistrer les réglages.
Pour ajouter des en-têtes et des pieds de page à l’exécution, Aspose.Cells fournit des appels d’API spéciaux et des commandes de script pour formater les en-têtes et les pieds de page.
Commandes de script
Les commandes de script sont des commandes spéciales qui vous permettent de définir le formatage des en-têtes et des pieds de page.
Commandes de script | Description |
---|---|
&P | Le numéro de la page actuelle |
&G | Une image |
&N | Le nombre total de pages |
&D | La date actuelle |
&T | L’heure actuelle |
&A | Le nom de la feuille de calcul |
&F | Le nom du fichier sans son chemin d’accès |
&&Text | Montre &Text. Par exemple : &&WO sera affiché comme &WO |
&"<FontName>" | Représente un nom de police. Par exemple : &“Arial” |
&"<FontName>, <FontStyle>" | Représente un nom de police avec un style. Par exemple : &“Arial, Gras” |
&<FontSize> | Représente la taille de la police. Par exemple : “&14abc”. Mais, si cette commande est suivie d’un nombre ordinaire à imprimer dans l’en-tête, cela doit être séparé d’un caractère d’espace de la taille de la police. Par exemple : “&14 123”. |
Définir les en-têtes et les pieds de page
La classe PageSetup fournit deux méthodes, SetHeader et SetFooter, utilisées pour ajouter un en-tête et un pied de page à une feuille de calcul. Ces méthodes ne prennent que deux paramètres :
- Section – la section où l’en-tête ou le pied de page doit être placé. Il existe trois sections : gauche, centre et droite, représentées respectivement par 0, 1 et 2.
- Script – le script à utiliser pour l’en-tête ou le pied de page. Ce script contient des commandes de script pour formater les en-têtes ou les pieds de page.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Create a new workbook
Workbook excel;
// Get the first worksheet's PageSetup
PageSetup pageSetup = excel.GetWorksheets().Get(0).GetPageSetup();
// Set worksheet name at the left section of the header
pageSetup.SetHeader(0, u"&A");
// Set current date and time at the central section of the header with custom font
pageSetup.SetHeader(1, u"&\"Times New Roman,Bold\"&D-&T");
// Set current file name at the right section of the header with custom font
pageSetup.SetHeader(2, u"&\"Times New Roman,Bold\"&12&F");
// Set a string at the left section of the footer with custom font for part of the string
pageSetup.SetFooter(0, u"Hello World! &\"Courier New\"&14 123");
// Set the current page number at the central section of the footer
pageSetup.SetFooter(1, u"&P");
// Set page count at the right section of the footer
pageSetup.SetFooter(2, u"&N");
// Save the workbook
excel.Save(u"SetHeadersAndFooters_out.xls");
Aspose::Cells::Cleanup();
return 0;
}
Insérer une image dans un en-tête ou un pied de page
La classe PageSetup possède deux méthodes supplémentaires, SetHeaderPicture et SetFooterPicture, utilisées pour ajouter des images dans l’en-tête et le pied de page. Ces méthodes prennent les paramètres :
- Section – la section d’en-tête ou de pied de page où l’image sera placée. Il existe trois sections, left, center et right, représentées respectivement par les valeurs 0, 1 et 2.
- Tableau de bytes – les données graphiques (les données binaires doivent être écrites dans le buffer d’un tableau de bytes).
Après l’exécution du code ci-dessous et l’ouverture du fichier, vérifiez l’en-tête de la feuille de calcul en :
- Dans le menu Fichier, sélectionnez Mise en page. Une boîte de dialogue s’affichera.
- Sélectionnez l’onglet En-tête/Pied de page.
#include <iostream>
#include <fstream>
#include <vector>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace std;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Creating a Workbook object
Workbook workbook;
// Creating a string variable to store the url of the logo/picture
U16String logo_url = srcDir + u"aspose-logo.jpg";
// Declaring a FileStream object
ifstream inFile;
// Declaring a byte array
vector<uint8_t> binaryData;
// Opening the logo/picture in the stream
inFile.open(logo_url.ToUtf8(), ios::binary);
if (inFile.is_open())
{
// Get the size of the file
inFile.seekg(0, ios::end);
size_t fileSize = inFile.tellg();
inFile.seekg(0, ios::beg);
// Resize the byte array to the size of the file
binaryData.resize(fileSize);
// Read the file into the byte array
inFile.read(reinterpret_cast<char*>(binaryData.data()), fileSize);
// Creating a PageSetup object to get the page settings of the first worksheet of the workbook
PageSetup pageSetup = workbook.GetWorksheets().Get(0).GetPageSetup();
// Convert std::vector to Aspose::Cells::Vector
Aspose::Cells::Vector<uint8_t> asposeBinaryData(binaryData.data(), static_cast<int32_t>(binaryData.size()));
// Setting the logo/picture in the central section of the page header
pageSetup.SetHeaderPicture(1, asposeBinaryData);
// Setting the script for the logo/picture
pageSetup.SetHeader(1, u"&G");
// Setting the Sheet's name in the right section of the page header with the script
pageSetup.SetHeader(2, u"&A");
// Saving the workbook
workbook.Save(outDir + u"InsertImageInHeaderFooter_out.xls");
// Closing the FileStream object
inFile.close();
}
else
{
cerr << "Failed to open the image file." << endl;
}
Aspose::Cells::Cleanup();
return 0;
}