Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Cell.EmbeddedImage utilizada en este artículo está disponible en Aspose.Cells 26.5 y posteriores.
Los sparklines son una forma compacta de visualizar tendencias directamente dentro de una hoja de cálculo. Mientras que los usuarios de Excel los ven en su lugar, muchos escenarios del mundo real requieren que un sparkline salga de la celda, por ejemplo, para ser incrustado en una celda diferente como una imagen estática, adjunto a un correo electrónico automatizado, o renderizado como parte de un informe HTML publicado en la web.
Aspose.Cells admite ambas operaciones. El método Sparkline.toImage renderiza un sparkline individual a un flujo, y los bytes resultantes pueden asignarse a Cell.EmbeddedImage para que la imagen se almacene dentro de una sola celda del libro. Por separado, HtmlSaveOptions le permite convertir el libro completo, sparklines incluidos, en un archivo HTML autónomo. Este artículo recorre ambos flujos de trabajo de principio a fin.
En este flujo de trabajo construirá una hoja de cálculo que contiene un pequeño rango de valores de origen, adjuntará tres grupos de sparklines diferentes (Línea, Columna y Apilado/Win-Loss) a ese rango, renderizará cada grupo como PNG, y escribirá esos bytes PNG en celdas adyacentes como imágenes incrustadas. El resultado final es un único archivo .xlsx que contiene tanto los sparklines en vivo como sus contrapartes de imagen renderizadas.
Workbook y obtenga una referencia a la primera Worksheet.A1 a E1 con cinco valores numéricos de muestra (por ejemplo, ventas diarias o lecturas de temperatura).SparklineGroup a la hoja de cálculo llamando a worksheet.sparklineGroups.add(...):
SparklineType.Line anclado en F1, con rango de datos A1:E1.SparklineType.Column anclado en G1, con rango de datos A1:E1.SparklineType.Stacked (win/loss) anclado en H1, con rango de datos A1:E1.ImageOrPrintOptions y establezca su ImageType a ImageType.Png para que cada sparkline se renderice como un PNG transparente.output_with_sparklines.xlsx.let workbook = new AsposeCells.Workbook();
let worksheet = workbook.getWorksheets().get(0);
// Poblar datos de muestra en las celdas A1:E1
worksheet.getCells().get("A1").putValue(5);
worksheet.getCells().get("B1").putValue(-3);
worksheet.getCells().get("C1").putValue(8);
worksheet.getCells().get("D1").putValue(-2);
worksheet.getCells().get("E1").putValue(6);
// Agregar un grupo de minigráficos de línea anclado en F1 (columna 5, fila 0)
let lineArea = new AsposeCells.CellArea();
lineArea.setStartColumn(5);
lineArea.setEndColumn(5);
lineArea.setStartRow(0);
lineArea.setEndRow(0);
let lineIdx = worksheet.getSparklineGroups().add(AsposeCells.SparklineType.Line, "A1:E1", false, lineArea);
// Agregar un grupo de minigráficos de columna anclado en G1 (columna 6, fila 0)
let columnArea = new AsposeCells.CellArea();
columnArea.setStartColumn(6);
columnArea.setEndColumn(6);
columnArea.setStartRow(0);
columnArea.setEndRow(0);
let columnIdx = worksheet.getSparklineGroups().add(AsposeCells.SparklineType.Column, "A1:E1", false, columnArea);
// Agregar un grupo de minigráficos de Ganancia/Pérdida (Apilado) anclado en H1 (columna 7, fila 0)
let stackedArea = new AsposeCells.CellArea();
stackedArea.setStartColumn(7);
stackedArea.setEndColumn(7);
stackedArea.setStartRow(0);
stackedArea.setEndRow(0);
let stackedIdx = worksheet.getSparklineGroups().add(AsposeCells.SparklineType.Stacked, "A1:E1", false, stackedArea);
// Configurar las opciones de imagen para la salida PNG
let imageOptions = new AsposeCells.ImageOrPrintOptions();
imageOptions.setImageType(AsposeCells.ImageType.Png);
// Convertir el minigráfico de línea a imagen e incrustarlo en la celda F2
let lineSp = worksheet.getSparklineGroups().get(lineIdx).getSparklines().get(0);
let lineMs = new java.io.ByteArrayOutputStream();
lineSp.toImage(lineMs, imageOptions);
worksheet.getCells().get("F2").setEmbeddedImage(lineMs.toByteArray());
// Convertir el minigráfico de columna a imagen e incrustarlo en la celda G2
let columnSp = worksheet.getSparklineGroups().get(columnIdx).getSparklines().get(0);
let columnMs = new java.io.ByteArrayOutputStream();
columnSp.toImage(columnMs, imageOptions);
worksheet.getCells().get("G2").setEmbeddedImage(columnMs.toByteArray());
// Convertir el minigráfico de Ganancia/Pérdida a imagen e incrustarlo en la celda H2
let stackedSp = worksheet.getSparklineGroups().get(stackedIdx).getSparklines().get(0);
let stackedMs = new java.io.ByteArrayOutputStream();
stackedSp.toImage(stackedMs, imageOptions);
worksheet.getCells().get("H2").setEmbeddedImage(stackedMs.toByteArray());
// Guardar el libro de trabajo en disco
workbook.save("output_with_sparklines.xlsx");
El código anterior produce un libro donde cada representación visual de un sparkline se duplica en dos formas: el sparkline nativo en vivo anclado en la fila 1, y una imagen PNG estática incrustada directamente en una celda vecina en la fila 2. Debido a que las imágenes viven dentro del archivo mismo, el libro sigue siendo un único artefacto autónomo que puede enviarse por correo electrónico o archivarse sin romper las referencias de imágenes incrustadas. Renderice cada grupo de sparklines como PNG, convierta el ByteArrayOutputStream a un byte[], y asigne el arreglo a la propiedad setEmbeddedImage de la celda objetivo; la asignación es lo que hace que la imagen sea parte del contenido almacenado de la celda.
Debido a que cada grupo de sparklines está anclado a una sola celda, puede acceder a él mediante el indexador group.sparklines[0] en lugar de enumerar con forEach. Esto mantiene el código de renderizado corto y coincide con el patrón típico de “un sparkline por celda ancla”. Almacenar los bytes de la imagen a través de Cell.EmbeddedImage requiere Aspose.Cells 26.5 o posterior.
Una vez que el libro contiene sparklines en vivo (y opcionalmente sus contrapartes de imágenes incrustadas), la hoja de cálculo completa puede publicarse en la web guardándola como HTML. La clase HtmlSaveOptions expone los controles que necesita para controlar esta exportación; en este flujo de trabajo reutilizará el archivo output_with_sparklines.xlsx producido por el Flujo de trabajo 1 y lo convertirá en un documento HTML limpio de una sola página.
output_with_sparklines.xlsx producido por el Flujo de trabajo 1 esté disponible en disco en su directorio de trabajo.Workbook.HtmlSaveOptions y establezca su propiedad ExportActiveWorksheetOnly a true para que el archivo HTML resultante contenga solo la hoja de cálculo activa en lugar del libro completo.workbook.save("sparklines.html", htmlOptions) para escribir la salida HTML en disco.let workbook = new AsposeCells.Workbook("output_with_sparklines.xlsx");
let htmlOptions = new AsposeCells.HtmlSaveOptions();
htmlOptions.setExportActiveWorksheetOnly(true);
workbook.save("sparklines.html", htmlOptions);
El código anterior toma el libro con sparklines del Flujo de trabajo 1 y lo convierte en un archivo HTML portátil. Los sparklines se conservan como renderizaciones SVG o PNG en línea dentro del HTML generado, dependiendo del modo de exportación, para que los usuarios finales puedan ver las tendencias en cualquier navegador moderno sin necesidad de tener Excel instalado. Al establecer ExportActiveWorksheetOnly a true, evita publicar accidentalmente hojas ocultas o datos auxiliares; solo se exporta la hoja de cálculo actualmente visible para el usuario.
La clase HtmlSaveOptions ofrece propiedades adicionales para ajustar finamente la salida, como ExportHiddenWorksheet, ExportImagesAsBase64 y Encoding. Ajústelas según sea necesario para su objetivo de despliegue.
Los flujos de trabajo anteriores dependen de un pequeño conjunto de APIs de Aspose.Cells que trabajan juntas.
SparklineGroup y el descriptor de acceso de colección worksheet.sparklineGroups se utilizan para declarar el tipo (Línea, Columna, Apilado), el rango de datos y la celda ancla para cada grupo de sparklines. En este artículo cada grupo está anclado a una sola celda, por lo que se accede al grupo a través de worksheet.sparklineGroups[i].Sparkline y el indexador group.sparklines[0] devuelven el sparkline individual dentro de un grupo. Debido a que cada grupo en el ejemplo contiene exactamente un sparkline, no se requiere un bucle forEach.Sparkline.toImage(OutputStream, ImageOrPrintOptions) es el método de renderizado que escribe una imagen del sparkline en un OutputStream proporcionado. El método devuelve void; usted lee los bytes del flujo después de la llamada.HtmlSaveOptions.ExportActiveWorksheetOnly (un boolean) restringe la exportación HTML a la hoja de cálculo activa. Es una de las propiedades más utilizadas en HtmlSaveOptions cuando se generan informes de una sola página.ImageOrPrintOptions.ImageType reside en el espacio de nombres com.aspose.cells.drawing y selecciona el formato de imagen (por ejemplo, ImageType.Png) utilizado al renderizar con toImage y al imprimir hojas de cálculo como imágenes.Workbook y obtenga una referencia a la primera Worksheet.A1 a E1 con cinco valores numéricos de muestra (por ejemplo, ventas diarias o lecturas de temperatura).SparklineGroup a la hoja de cálculo llamando a worksheet.sparklineGroups.add(...):
SparklineType.Line anclado en F1, con rango de datos A1:E1.SparklineType.Column anclado en G1, con rango de datos A1:E1.SparklineType.Stacked (win/loss) anclado en H1, con rango de datos A1:E1.ImageOrPrintOptions y establezca su ImageType a ImageType.Png para que cada sparkline se renderice como un PNG transparente.output_with_sparklines.xlsx.El código anterior produce un libro donde cada representación visual de un sparkline se duplica en dos formas: el sparkline nativo en vivo anclado en la fila 1, y una imagen PNG estática incrustada directamente en una celda vecina en la fila 2. Debido a que las imágenes viven dentro del archivo mismo, el libro sigue siendo un único artefacto autónomo que puede enviarse por correo electrónico o archivarse sin romper las referencias de imágenes incrustadas. Renderice cada grupo de sparklines como PNG, convierta el ByteArrayOutputStream a un byte[], y asigne el arreglo a la propiedad setEmbeddedImage de la celda objetivo; la asignación es lo que hace que la imagen sea parte del contenido almacenado de la celda.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.