Kopf und Fußzeilen mit C++ festlegen
Kopf- und Fußzeilen einstellen
Aspose.Cells ermöglicht es Ihnen, Header und Fußzeilen dynamisch zu Arbeitsblättern hinzuzufügen, aber wir empfehlen, Header und Fußzeilen manuell in einer vordefinierten Datei für den Druck festzulegen. Sie können Microsoft Excel als GUI-Werkzeug verwenden, um Header und Fußzeilen einzurichten, um Aufwand und Entwicklungszeit zu sparen. Aspose.Cells kann die Datei importieren und die Einstellungen speichern.
Um Header und Fußzeilen dynamisch hinzuzufügen, bietet Aspose.Cells spezielle API-Aufrufe und Skriptbefehle zur Formatierung von Header und Fußzeilen.
Skriptbefehle
Skriptbefehle sind besondere Befehle, die es ermöglichen, die Formatierung von Header und Fußzeilen festzulegen.
Skriptbefehle | Beschreibung |
---|---|
&P | Aktuelle Seitennummer |
&G | Ein Bild |
&N | Gesamtanzahl der Seiten |
&D | Aktuelles Datum |
&T | Aktuelle Uhrzeit |
&A | Name des Arbeitsblatts |
&F | Dateiname ohne Pfadangabe |
&&Text | Zeigt &Text. Zum Beispiel: &&WO wird als &WO angezeigt |
&"<FontName>" | Stellt einen Schriftartnamen dar. Beispiel: &“Arial” |
&"<FontName>, <FontStyle>" | Stellt Schriftartnamen mit Stil dar. Beispiel: &“Arial,Fett” |
&<FontSize> | Stellt die Schriftgröße dar. Zum Beispiel: “&14abc”. Wenn jedoch dieser Befehl von einer reinen Zahl gefolgt wird, die im Kopf gedruckt werden soll, sollte diese durch ein Leerzeichen von der Schriftgröße getrennt werden. Zum Beispiel: “&14 123”. |
Header und Fußzeilen festlegen
Die Klasse PageSetup stellt zwei Methoden bereit, SetHeader und SetFooter, die zum Hinzufügen von Header und Fußzeilen zu einem Arbeitsblatt verwendet werden. Diese Methoden nehmen nur zwei Parameter:
- Abschnitt – der Abschnitt, in dem der Header oder die Fußzeile platziert werden soll. Es gibt drei Abschnitte: links, zentriert und rechts, die jeweils durch 0, 1 und 2 dargestellt werden.
- Skript – das Skript, das für den Header oder die Fußzeile verwendet werden soll. Dieses Skript enthält Skriptbefehle zur Formatierung von Headern oder Fußzeilen.
#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;
}
Fügen Sie ein Bild in einen Header oder eine Fußzeile ein
Die Klasse PageSetup hat zwei zusätzliche Methoden, SetHeaderPicture und SetFooterPicture, die zum Hinzufügen von Bildern in den Header und die Fußzeile verwendet werden. Diese Methoden nehmen die Parameter:
- Abschnitt – der Header- oder Fußzeilenabschnitt, in den das Bild platziert wird. Es gibt drei Abschnitte, links, zentriert und rechts, die jeweils durch die Werte 0, 1 und 2 dargestellt werden.
- Byte-Array – die grafischen Daten (die Binärdaten sollten in den Puffer eines Byte-Arrays geschrieben werden).
Nach Ausführung des folgenden Codes und Öffnen der Datei überprüfen Sie den Kopfzeilenbereich des Arbeitsblatts:
- Wählen Sie im Menü Datei die Option Seitenlayout aus. Es wird ein Dialogfeld angezeigt.
- Wählen Sie den Tab Kopfzeile/Fußzeile aus.
#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;
}