Remplacer la balise par du texte dans une zone de texte à l'intérieur de la feuille de calcul

Scénarios d’utilisation possibles

Les zones de texte peuvent avoir des balises qui peuvent être remplacées par du texte au moment de l’exécution pour les configurer en fonction des besoins. Les balises peuvent être des étiquettes entre crochets ‘<’ and ‘>. Il peut y avoir plusieurs balises dans une même zone de texte.

Exemple de code

L’exemple de code suivant remplace les balises TAG_1 et TAG_2 avec du texte, dites « oui » et « 1 ». Un exemple de fichier pour tester le code ci-dessous peut être téléchargé à partir du lien suivant :

exempleReplaceTagWithText.xlsx

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
Workbook wb = new Workbook(sourceDir + "sampleReplaceTagWithText.xlsx");
string tag = "TAG_2$TAG_1";
string replace = "1$ys";
for (int i = 0; i < tag.Split('$').Length; i++)
{
sheetReplace(wb, "<" + tag.Split('$')[i] + ">", replace.Split('$')[i]);
}
PdfSaveOptions opts = new PdfSaveOptions();
wb.Save(outputDir + "outputReplaceTagWithText.pdf", opts);
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
public static void sheetReplace(Workbook workbook, string sFind, string sReplace)
{
string finding = sFind;
foreach (Worksheet sheet in workbook.Worksheets)
{
sheet.Replace(finding, sReplace);
for (int j = 0; j < 3; j++)
{
if (sheet.PageSetup.GetHeader(j) != null)
sheet.PageSetup.SetHeader(j, sheet.PageSetup.GetHeader(j).Replace(finding, sReplace));
if (sheet.PageSetup.GetFooter(j) != null)
sheet.PageSetup.SetFooter(j, sheet.PageSetup.GetFooter(j).Replace(finding, sReplace));
}
}
foreach (Worksheet sheet in workbook.Worksheets)
{
sFind = sFind.Replace("<", "&lt;");
sFind = sFind.Replace(">", "&gt;");
foreach (Aspose.Cells.Drawing.TextBox mytextbox in sheet.TextBoxes)
{
if (mytextbox.HtmlText != null)
{
if (mytextbox.HtmlText.IndexOf(sFind) >= 0)
{
mytextbox.HtmlText = mytextbox.HtmlText.Replace(sFind, sReplace);
}
}
}
}
}