Formen in Diagrammen mit C++
Hinzufügen von Beschriftungssteuerung zum Diagramm
Beschriftungen bieten eine Möglichkeit, Benutzern Informationen über den Inhalt eines Arbeitsblatts bereitzustellen. Aspose.Cells ermöglicht es Ihnen, Beschriftungen sogar in Diagramme zu hinzuzufügen und zu manipulieren.
Die Klasse Aspose::Cells::Drawing::ShapeCollection bietet eine Methode namens AddLabelInChart, mit der ein Label-Steuerelement zu einem Diagramm hinzugefügt wird. Nachfolgend eine Liste der für die Methode verwendeten Parameter:
- top – der vertikale Versatz der Beschriftung von der oberen linken Ecke in Einheiten von 1/4000 des Diagrammbereichs.
- left – der horizontale Versatz der Beschriftung von der oberen linken Ecke in Einheiten von 1/4000 des Diagrammbereichs.
- height – die Höhe der Beschriftung, in Einheiten von 1/4000 des Diagrammbereichs.
- width – die Breite der Beschriftung, in Einheiten von 1/4000 des Diagrammbereichs.
Die Methode gibt ein Aspose::Cells::Drawing::Label-Objekt zurück. Die Klasse Label repräsentiert ein Label im Diagramm. Sie verfügt über einige wichtige Mitglieder:
- Text (Eigenschaft) – gibt die Beschriftungszeichenkette eines Labels an.
- Fill (Eigenschaft) – gibt die Farbfüllungseigenschaften an.
Im folgenden Beispiel wird gezeigt, wie eine Beschriftung dem Diagramm hinzugefügt wird. Das Beispiel verwendet eine Designerdatei (exp_piechart.xls), die ein Diagramm enthält. Wir verwenden diese Datei, um eine Beschriftung in das Diagramm einzufügen. Unten finden Sie den ursprünglichen Code zum Hinzufügen einer Beschriftung zum Diagramm. Die folgende Ausgabe wird beim Ausführen des Codes generiert.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Drawing;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"chart.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"chart.out.xls";
// Create workbook
Workbook workbook(inputFilePath);
// Get the designer chart in the second sheet
Worksheet sheet = workbook.GetWorksheets().Get(1);
Aspose::Cells::Charts::Chart chart = sheet.GetCharts().Get(0);
// Add a new label to the chart
Label label = chart.GetShapes().AddLabelInChart(100, 100, 350, 900);
// Set the caption of the label
label.SetText(u"A Label In Chart");
// Set the Placement Type, the way the Label is attached to the cells
label.SetPlacement(PlacementType::FreeFloating);
// Save the excel file
workbook.Save(outputFilePath);
std::cout << "Label added to chart successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Hinzufügen einer Textfeldsteuerung zum Diagramm
Eine Möglichkeit, wichtige Informationen in einem Bericht hervorzuheben, besteht darin, ein Textfeld zu verwenden. Zum Beispiel können Sie Text eingeben, um den Firmennamen hervorzuheben oder die geografische Region mit den höchsten Verkaufszahlen anzugeben. Die Klasse Aspose::Cells::Drawing::ShapeCollection bietet eine Methode namens AddTextBoxInChart, mit der ein Textfeld-Steuerelement zu einem Diagramm hinzugefügt wird. Nachfolgend die Parameterliste für die Methode:
- top – der vertikale Versatz des Textfelds von der oberen linken Ecke in Einheiten von 1/4000 des Diagrammbereichs.
- left – der horizontale Versatz des Textfelds von der oberen linken Ecke in Einheiten von 1/4000 des Diagrammbereichs.
- height – die Höhe des Textfelds, in Einheiten von 1/4000 des Diagrammbereichs.
- width – die Breite des Textfelds, in Einheiten von 1/4000 des Diagrammbereichs.
Die Methode gibt ein Aspose::Cells::Drawing::TextBox-Objekt zurück. Die TextBox-Klasse stellt ein Textfeld im Diagramm dar.
Im folgenden Beispiel wird gezeigt, wie ein Textfeld zu einem Diagramm hinzugefügt wird. Das Beispiel verwendet die vorherige Designerdatei (exp_piechart.xls), die ein Diagramm enthält. Wir verwenden diese Datei, um ein Textfeld in das Diagramm einzufügen, um den Diagrammtitel anzuzeigen. Unten finden Sie den ursprünglichen Code zum Hinzufügen eines Textfelds zum Diagramm.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Drawing;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"chart.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"chart.out.xls";
// Create workbook
Workbook workbook(inputFilePath);
// Get the designer chart in the second sheet
Worksheet sheet = workbook.GetWorksheets().Get(1);
Aspose::Cells::Charts::Chart chart = sheet.GetCharts().Get(0);
// Add a new textbox to the chart
TextBox textbox0 = chart.GetShapes().AddTextBoxInChart(100, 1100, 350, 2550);
// Fill the text
textbox0.SetText(u"Sales By Region");
// Set the font color
textbox0.GetFont().SetColor(Color::Maroon());
// Set the font to bold
textbox0.GetFont().SetIsBold(true);
// Set the font size
textbox0.GetFont().SetSize(14);
// Set font attribute to italic
textbox0.GetFont().SetIsItalic(true);
// Get the fill format of the textbox
FillFormat fillformat = textbox0.GetFill();
// Get the line format type of the textbox
LineFormat lineformat = textbox0.GetLine();
// Set the line weight
lineformat.SetWeight(2);
// Set the dash style to solid
lineformat.SetDashStyle(MsoLineDashStyle::Solid);
// Save the excel file
workbook.Save(outputFilePath);
std::cout << "Textbox added to chart successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Hinzufügen eines Bilds zum Diagramm
Mit Aspose.Cells können Sie Bilder in ein Diagramm einfügen. Fügen Sie beispielsweise ein Bild hinzu, um ein Diagramm oder seine Inhalte zu betonen oder mehr Bedeutung zu verleihen oder fügen Sie eine Markenbild-Datei ein.
Die Klasse Aspose::Cells::Drawing::ShapeCollection stellt eine Methode namens AddPictureInChart bereit, mit der ein Bildobjekt zum Diagramm hinzugefügt wird. Nachfolgend die Parameterliste, die für die Methode verwendet wird:
- top – der vertikale Abstand des Bildes von der oberen linken Ecke in Einheiten von 1/4000 des Diagrammbereichs.
- left – der horizontale Abstand des Bildes von der oberen linken Ecke in Einheiten von 1/4000 des Diagrammbereichs.
- stream – ein Stream-Objekt, das die Bilddaten enthält.
- widthScale – die Skalierung der Bildbreite, ein Prozentsatz.
- heightScale – die Skalierung der Bildhöhe, ein Prozentsatz.
Die Methode gibt ein Aspose::Cells::Drawing::Picture-Objekt zurück. Die Klasse Picture stellt ein Bildobjekt im Diagramm dar.
Das folgende Beispiel zeigt, wie Sie ein Bild zum Diagramm hinzufügen. Das Beispiel verwendet die vorige Designerdatei (exp_piechart.xls), die ein Diagramm enthält. Wir verwenden diese Datei, um ein Bild in das Diagramm einzufügen. Unten finden Sie den ursprünglichen Code zum Hinzufügen eines Bildes zum Diagramm.
#include <iostream>
#include <fstream>
#include <vector>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Charts;
using namespace Aspose::Cells::Drawing;
std::vector<uint8_t> ReadFileData(const U16String& filePath) {
std::ifstream file(filePath.ToUtf8(), std::ios::binary | std::ios::ate);
std::streamsize size = file.tellg();
file.seekg(0, std::ios::beg);
std::vector<uint8_t> buffer(size);
if (!file.read(reinterpret_cast<char*>(buffer.data()), size)) {
throw std::runtime_error("Error reading file");
}
return buffer;
}
int main() {
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
Workbook workbook(srcDir + u"chart.xls");
std::vector<uint8_t> imageData = ReadFileData(srcDir + u"logo.jpg");
Worksheet sheet = workbook.GetWorksheets().Get(0);
Chart chart = sheet.GetCharts().Get(0);
Vector<uint8_t> data(imageData.data(), static_cast<int32_t>(imageData.size()));
Picture pic0 = chart.GetShapes().AddPictureInChart(50, 50, data, 40, 40);
LineFormat lineFormat = pic0.GetLine();
lineFormat.SetDashStyle(MsoLineDashStyle::Solid);
lineFormat.SetWeight(4);
workbook.Save(outDir + u"chart.out.xls");
std::cout << "Chart modified successfully." << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Checkbox in das Diagramm einfügen
Aspose.Cells ermöglicht es Ihnen, Checkboxen in ein Diagrammblatt einzufügen, indem Sie die MsoDrawingType-Aufzählung verwenden. Das folgende Beispiel zeigt das Hinzufügen einer Checkbox zu einem Diagrammblatt.
Das folgende Bild zeigt das Diagrammblatt mit der Checkbox in der Ausgabedatei.
Die Ausgabedatei, die durch den folgenden Code-Schnipsel generiert wurde, ist als Referenz angehängt.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Drawing;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create a new workbook
Workbook workbook;
// Add a chart sheet to the workbook
int32_t index = workbook.GetWorksheets().Add(SheetType::Chart);
// Get the newly added chart sheet
Worksheet sheet = workbook.GetWorksheets().Get(index);
// Add a floating chart to the sheet
sheet.GetCharts().AddFloatingChart(ChartType::Column, 0, 0, 1024, 960);
// Add data series to the chart
sheet.GetCharts().Get(0).GetNSeries().Add(U16String(u"{1,2,3}"), false);
// Add a checkbox to the chart
sheet.GetCharts().Get(0).GetShapes().AddShapeInChart(MsoDrawingType::CheckBox, PlacementType::Move, 400, 400, 1000, 600);
// Set text for the checkbox
sheet.GetCharts().Get(0).GetShapes().Get(0).SetText(U16String(u"CheckBox 1"));
// Save the workbook
workbook.Save(outDir + u"InsertCheckboxInChartSheet_out.xlsx");
std::cout << "Checkbox added to chart sheet successfully!" << std::endl;
Aspose::Cells::Cleanup();
}