Hur man skapar ett dynamiskt skrollande diagram med C++

Möjliga användningsscenario

Dynamiskt rullande diagram är en typ av grafisk representation som används för att visa data som förändras över tiden. Det är utformat för att ge en realtidsvy över data, vilket gör att användare kan följa kontinuerliga uppdateringar och trender. Diagrammet uppdaterar kontinuerligt sig självt när ny data läggs till, och det rullar automatiskt för att visa den senaste informationen.

Dynamiska rullande diagram används vanligtvis inom olika branscher, såsom finans, analys av aktiemarknaden, väderövervakning och analys av sociala medier. De möjliggör för användare att visualisera och analysera datapunkter och fatta informerade beslut baserat på realtidsinformation.

Dessa diagram är vanligtvis interaktiva, vilket låter användaren zooma in eller ut, bläddra genom historisk data och justera tidsintervall. De stödjer ofta flera dataserier, vilket ger en omfattande vy över olika mätvärden och deras korrelationer.

Övergripande sett är dynamiska rullande diagram värdefulla verktyg för övervakning och analys av tidsseriedata, vilket underlättar beslut i realtid och förbättrar datavisualiseringskapaciteten.

Använd Aspose Cells för att skapa dynamiskt skrollande diagram

I de följande styckena visar vi hur du skapar ett dynamiskt skrollande diagram med Aspose.Cells. Vi visar koden för exemplet samt den Excel-fil som skapas med denna kod.

Exempelkod

Den följande provkoden kommer att generera Dynamic Scrolling Chart File.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Drawing;

int main()
{
    Aspose::Cells::Startup();

    U16String localPath(u"");

    Workbook workbook;
    WorksheetCollection sheets = workbook.GetWorksheets();
    Worksheet sheet = sheets.Get(0);

    sheet.GetCells().Get(u"A1").PutValue(u"Day");
    sheet.GetCells().Get(u"B1").PutValue(u"Sales");

    int allDays = 30;
    int showDays = 10;
    int currentDay = 1;

    Cells cells = sheet.GetCells();
    for (int i = 0; i < allDays; i++)
    {
        int row = i + 1;
        cells.Get(row, 0).PutValue(i + 1);
        cells.Get(row, 1).PutValue(50 * (i % 2) + 20 * (i % 3) + 10 * (i / 3));
    }

    sheet.GetCells().Get(u"G19").PutValue(u"Start Day");
    sheet.GetCells().Get(u"G20").PutValue(currentDay);
    sheet.GetCells().Get(u"H19").PutValue(u"Show Days");
    sheet.GetCells().Get(u"H20").PutValue(showDays);

    int index = sheets.GetNames().Add(u"Sheet1!ChtScrollData");
    sheets.GetNames().Get(index).SetRefersTo(u"=OFFSET(Sheet1!$B$2,Sheet1!$G$20,0,Sheet1!$H$20,1)");

    index = sheets.GetNames().Add(u"Sheet1!ChtScrollLabels");
    sheets.GetNames().Get(index).SetRefersTo(u"=OFFSET(Sheet1!$A$2,Sheet1!$G$20,0,Sheet1!$H$20,1)");

    ScrollBar bar = sheet.GetShapes().AddScrollBar(2, 0, 3, 0, 200, 30);
    bar.SetMin(0);
    bar.SetMax(allDays - showDays);
    bar.SetCurrentValue(currentDay);
    bar.SetLinkedCell(u"$G$20");

    int chartIndex = sheet.GetCharts().Add(ChartType::Line, 2, 4, 15, 10);
    Chart chart = sheet.GetCharts().Get(chartIndex);
    chart.GetNSeries().Add(u"Sales", true);
    chart.GetNSeries().Get(0).SetValues(u"Sheet1!ChtScrollData");
    chart.GetNSeries().Get(0).SetXValues(u"Sheet1!ChtScrollLabels");

    workbook.Save(localPath + u"DynamicScrollingChart.xlsx");

    Aspose::Cells::Cleanup();
}

Anteckningar

I den genererade filen kan du använda rullisten samtidigt som diagrammet dynamiskt räknar de senaste 10 datamängderna. Detta görs med “OFFSET”-formeln i provkoden:

"=OFFSET(Sheet1!$B$2,Sheet1!$G$20,0,Sheet1!$H$20,1)"

Du kan prova att ändra numret “10” till “15” i cellen “Ark1!$H$20”, och det dynamiska diagrammet kommer att räkna de senaste 15 datamängderna. Nu har vi skapat ett dynamiskt rullande diagram med hjälp av Aspose.Cells framgångsrikt.