Reemplace la etiqueta con texto en un cuadro de texto dentro de la hoja de trabajo

Posibles escenarios de uso

Los cuadros de texto pueden tener etiquetas que se pueden reemplazar con algún texto en tiempo de ejecución para configurarlos de acuerdo con el requisito. Las etiquetas pueden ser algunas etiquetas encerradas entre paréntesis angulares ‘<’ and ‘>. Puede haber múltiples etiquetas dentro de un solo cuadro de texto.

Código de muestra

El siguiente código de muestra reemplaza las etiquetas TAG_1 y etiqueta_2 con algún texto dicen ‘ys’ y ‘1’. El archivo de muestra para probar el siguiente código se puede descargar desde el siguiente enlace:

ejemploReplaceTagWithText.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);
}
}
}
}
}