Replace text in smart art with C++
Contents
[
Hide
]
Possible Usage Scenarios
Smart art is one of the major objects in a workbook. Many times there is a need to update the text in smart art. Aspose.Cells provides this feature by setting the Shape.Text property.
The sample source file can be downloaded from the following link:
Sample Code
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
U16String inputFilePath = srcDir + u"SmartArt.xlsx";
U16String outputFilePath = outDir + u"outputSmartArt.xlsx";
Workbook workbook(inputFilePath);
WorksheetCollection worksheets = workbook.GetWorksheets();
for (int i = 0; i < worksheets.GetCount(); ++i)
{
Worksheet worksheet = worksheets.Get(i);
ShapeCollection shapes = worksheet.GetShapes();
for (int j = 0; j < shapes.GetCount(); ++j)
{
Shape shape = shapes.Get(j);
shape.SetAlternativeText(u"ReplacedAlternativeText");
if (shape.IsSmartArt())
{
GroupShape smartArtGroup = shape.GetResultOfSmartArt();
auto groupedShapes = smartArtGroup.GetGroupedShapes();
for (int k = 0; k < groupedShapes.GetLength(); ++k)
{
Shape smartArtShape = groupedShapes[k];
smartArtShape.SetText(u"ReplacedText");
}
}
}
}
OoxmlSaveOptions options;
options.SetUpdateSmartArt(true);
workbook.Save(outputFilePath, options);
std::cout << "SmartArt updated and saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}