Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Cell.EmbeddedImage som används i den här artikeln är tillgänglig i Aspose.Cells 26.5 och senare.
Sparklines är ett kompakt sätt att visualisera trender direkt i ett kalkylblad. Medan Excel-användare ser dem på plats kräver många verkliga scenarier att en sparkline lämnar cellen – till exempel för att bäddas in i en annan cell som en statisk bild, bifogas till ett automatiserat e-postmeddelande eller renderas som en del av en HTML-rapport som publiceras på webben.
Aspose.Cells stödjer båda dessa operationer. Metoden Sparkline.ToImage renderar en enskild sparkline till en ström, och de resulterande bytena kan tilldelas till Cell.EmbeddedImage så att bilden lagras i en enskild cell i arbetsboken. Separat låter HtmlSaveOptions dig konvertera hela arbetsboken – inklusive sparklines – till en självständig HTML-fil. Den här artikeln går igenom båda arbetsflödena steg för steg.
I det här arbetsflödet kommer du att bygga ett kalkylblad som innehåller ett litet intervall av källvärden, koppla tre olika sparkline-grupper (linje, kolumn och staplade/vinst-förlust) till det intervallet, rendera varje grupp som en PNG, och skriva dessa PNG-byten i intilliggande celler som inbäddade bilder. Det slutliga resultatet är en enda .xlsx-fil som innehåller både de levande sparklines och deras renderade bildmotsvarigheter.
Workbook och hämta en referens till det första Worksheet.A1 till E1 med fem numeriska exempelvärden (till exempel daglig försäljning eller temperaturavläsningar).SparklineGroup-objekt i kalkylbladet genom att anropa worksheet.SparklineGroups.Add(...):
SparklineType.Line-grupp förankrad vid F1, med dataområde A1:E1.SparklineType.Column-grupp förankrad vid G1, med dataområde A1:E1.SparklineType.Stacked (vinst/förlust)-grupp förankrad vid H1, med dataområde A1:E1.ImageOrPrintOptions-instans och ställ in dess ImageType till ImageType.Png så att varje sparkline renderas som en transparent PNG.group.Sparklines[0].ToImage(memoryStream, imageOptions), konvertera MemoryStream till en Vector<uint8_t>, och tilldela arrayen till worksheet.Cells["F2"].EmbeddedImage, worksheet.Cells["G2"].EmbeddedImage respektive worksheet.Cells["H2"].EmbeddedImage.output_with_sparklines.xlsx.#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
Workbook workbook;
Worksheet worksheet = workbook.GetWorksheets().Get(0);
worksheet.GetCells().Get(u"A1").PutValue(5);
worksheet.GetCells().Get(u"B1").PutValue(-3);
worksheet.GetCells().Get(u"C1").PutValue(8);
worksheet.GetCells().Get(u"D1").PutValue(-2);
worksheet.GetCells().Get(u"E1").PutValue(6);
CellArea lineArea;
lineArea.StartColumn = 5;
lineArea.EndColumn = 5;
lineArea.StartRow = 0;
lineArea.EndRow = 0;
int lineIdx = worksheet.GetSparklineGroups().Add(SparklineType::Line, U16String("A1:E1"), false, lineArea);
CellArea columnArea;
columnArea.StartColumn = 6;
columnArea.EndColumn = 6;
columnArea.StartRow = 0;
columnArea.EndRow = 0;
int columnIdx = worksheet.GetSparklineGroups().Add(SparklineType::Column, U16String("A1:E1"), false, columnArea);
CellArea stackedArea;
stackedArea.StartColumn = 7;
stackedArea.EndColumn = 7;
stackedArea.StartRow = 0;
stackedArea.EndRow = 0;
int stackedIdx = worksheet.GetSparklineGroups().Add(SparklineType::Stacked, U16String("A1:E1"), false, stackedArea);
ImageOrPrintOptions imageOptions;
imageOptions.SetImageType(ImageType::Png);
Sparkline lineSp = worksheet.GetSparklineGroups().Get(lineIdx).GetSparklines().Get(0);
Vector<uint8_t> lineImg = lineSp.ToImage(imageOptions);
worksheet.GetCells().Get(u"F2").SetEmbeddedImage(lineImg);
Sparkline columnSp = worksheet.GetSparklineGroups().Get(columnIdx).GetSparklines().Get(0);
Vector<uint8_t> columnImg = columnSp.ToImage(imageOptions);
worksheet.GetCells().Get(u"G2").SetEmbeddedImage(columnImg);
Sparkline stackedSp = worksheet.GetSparklineGroups().Get(stackedIdx).GetSparklines().Get(0);
Vector<uint8_t> stackedImg = stackedSp.ToImage(imageOptions);
worksheet.GetCells().Get(u"H2").SetEmbeddedImage(stackedImg);
workbook.Save(u"output_with_sparklines.xlsx");
Aspose::Cells::Cleanup();
return 0;
}
Koden ovan producerar en arbetsbok där varje visuell representation av en sparkline dupliceras i två former: den levande, nativa sparkline förankrad vid rad 1, och en statisk PNG-bild inbäddad direkt i en intilliggande cell på rad 2. Eftersom bilderna finns i själva filen förblir arbetsboken ett enda självständigt objekt som kan e-postas eller arkiveras utan att de inbäddade bildreferenserna bryts. Rendera varje sparkline-grupp som en PNG, konvertera MemoryStream till en Vector<uint8_t>, och tilldela arrayen till egenskapen EmbeddedImage för målcellen – det är tilldelningen som gör bilden till en del av cellens lagrade innehåll.
group.Sparklines[0] istället för att räkna upp med foreach. Detta håller renderingskoden kort och matchar det typiska mönstret “en sparkline per förankringscell”. Att lagra bildbyten via Cell.EmbeddedImage kräver Aspose.Cells 26.5 eller senare.
När arbetsboken innehåller levande sparklines (och valfritt inbäddade bildmotsvarigheter), kan hela kalkylbladet publiceras på webben genom att spara det som HTML. Klassen HtmlSaveOptions exponerar de reglage du behöver för att styra denna export; i detta arbetsflöde kommer du att återanvända filen output_with_sparklines.xlsx som producerades av arbetsflöde 1 och konvertera den till ett rent HTML-dokument med en sida.
output_with_sparklines.xlsx som producerades av arbetsflöde 1 är tillgänglig på disk i din arbetskatalog.Workbook-instans.HtmlSaveOptions och ställ in dess egenskap ExportActiveWorksheetOnly till true så att den resulterande HTML-filen endast innehåller det aktiva kalkylbladet snarare än hela arbetsboken.workbook.Save("sparklines.html", htmlOptions) för att skriva HTML-utdata till disk.#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main() {
Aspose::Cells::Startup();
Workbook workbook(u"output_with_sparklines.xlsx");
HtmlSaveOptions htmlOptions;
htmlOptions.SetExportActiveWorksheetOnly(true);
workbook.Save(u"sparklines.html", htmlOptions);
Aspose::Cells::Cleanup();
return 0;
}
Koden ovan tar den sparkline-rika arbetsboken från arbetsflöde 1 och förvandlar den till en portabel HTML-fil. Sparklines bevaras som inline SVG- eller PNG-renderingar i den genererade HTML:en, beroende på exportläge, så slutanvändare kan se trenderna i vilken modern webbläsare som helst utan att behöva ha Excel installerat. Genom att ställa in ExportActiveWorksheetOnly till true undviker du att oavsiktligt publicera dolda blad eller hjälpdata – endast det kalkylblad som för närvarande är synligt för användaren exporteras.
HtmlSaveOptions erbjuder ytterligare egenskaper för finjustering av utdata, såsom ExportHiddenWorksheet, ExportImagesAsBase64 och Encoding. Justera dessa efter behov för ditt distributionsmål.
Arbetsflödena ovan förlitar sig på en liten uppsättning Aspose.Cells-API:er som arbetar tillsammans.
SparklineGroup och samlingsaccessorn worksheet.SparklineGroups används för att deklarera typen (linje, kolumn, staplade), dataområdet och förankringscellen för varje sparkline-grupp. I den här artikeln är varje grupp förankrad till en enskild cell, så gruppen nås via worksheet.SparklineGroups[i].Sparkline och indexeraren group.Sparklines[0] returnerar den enskilda sparkline inom en grupp. Eftersom varje grupp i exemplet innehåller exakt en sparkline krävs ingen foreach-loop.Sparkline.ToImage(Stream, ImageOrPrintOptions) är renderingsmetoden som skriver en bild av sparkline till en angiven Stream. Metoden returnerar void; du läser byten från strömmen efter anropet.Cell.EmbeddedImage är en Vector<uint8_t>-egenskap som lagrar en bild i en enskild cell. Den är tillgänglig i Aspose.Cells 26.5 och senare och är det rekommenderade sättet att round-trippa en sparkline renderad av ToImage tillbaka till samma arbetsbok.HtmlSaveOptions.ExportActiveWorksheetOnly (en bool) begränsar HTML-export till det aktiva kalkylbladet. Det är en av de mest använda egenskaperna på HtmlSaveOptions när man genererar ensides-rapporter.ImageOrPrintOptions.ImageType finns i namnrymden Aspose.Cells.Drawing och väljer bildformatet (till exempel ImageType.Png) som används vid rendering med ToImage och vid utskrift av kalkylblad till bilder.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.