Skapa Excel-diagram C++

Diagram är ett utmärkt verktyg för att kortfattat visa data. Dessutom representerar de data visuellt, vilket gör det lättare att konsumera stora mängder data. Du kan hitta diagram som är användbara i situationer där du behöver visa data som månadsbudgetjämförelse eller produktanvändningsfrekvens. Mot bakgrund av det kommer den här artikeln att lära dig hur du skapar diagram i Excel-filer med C++.

C++ API för att skapa Excel-diagram

Aspose.Cells for C++ är ett inbyggt C++-bibliotek som låter dig skapa, läsa och ändra Excel-filer utan att Microsoft Excel behöver installeras. API:et stöder också att skapa diagram i Excel-filer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.Cells.Cpp

Skapa linjediagram i Excel med C++

För att skapa ett linjediagram, använd ChartTypeLine enumvärdet medan du lägger till diagrammet. Följande är stegen för att skapa ett linjediagram i en Excel-fil.

Följande är exempelkoden för att skapa ett linjediagram i Excel med C++.

// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");

// Sökväg för utdata excel-fil
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// Skapa en ny arbetsbok
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Skaffa första kalkylbladet som skapas som standard
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Lägga till exempelvärden till celler
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// Lägga till ett diagram i arbetsbladet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);

// Åtkomst till instansen av det nyligen tillagda diagrammet
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Lägga till SeriesCollection (diagramdatakälla) till diagrammet som sträcker sig från "A1"-cell till "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Sparar Excel-filen
workbook->Save(outputChartTypeLine);
Linjediagram

Linjediagram genererat av exempelkoden

Skapa pyramiddiagram i Excel med C++

För att skapa ett pyramiddiagram, använd ChartTypePyramid enum-värdet för att ange diagramtypen när du lägger till diagrammet. Följande är stegen för att skapa ett pyramiddiagram i en Excel-fil.

Följande är exempelkoden för att skapa ett pyramiddiagram i Excel med C++.

// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");

// Sökväg för utdata excel-fil
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// Skapa en ny arbetsbok
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Skaffa första kalkylbladet som skapas som standard
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Lägga till exempelvärden till celler
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);

// Lägga till ett diagram i arbetsbladet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// Åtkomst till instansen av det nyligen tillagda diagrammet
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Lägga till SeriesCollection (diagramdatakälla) till diagrammet som sträcker sig från "A1"-cell till "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Sparar Excel-filen
workbook->Save(outputChartTypePyramid);
Pyramiddiagram

Pyramiddiagram genererat av exempelkoden

Skapa bubbeldiagram i Excel med C++

För att skapa ett bubbeldiagram, skicka ChartTypeBubble enum-värdet till metoden IWorksheet->GetICharts()->Add(). Följande är stegen för att skapa ett bubbeldiagram i en Excel-fil.

Följande är exempelkoden för att skapa ett bubbeldiagram i Excel med C++.

// Utdatakatalogsökväg.
StringPtr outDir = new String("OutputDirectory\\");

// Sökväg för utdata excel-fil
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// Skapa en ny arbetsbok
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Skaffa första kalkylbladet som skapas som standard
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Fyll i data för diagramserier
// Y-värden
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Y-värden"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Bubbelstorlek
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Bubbelstorlek"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// X-värden
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("X-värden"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);

// Ställ in första kolumns bredd
worksheet->GetICells()->SetColumnWidth(0, 12);

// Lägga till ett diagram i arbetsbladet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);

// Åtkomst till instansen av det nyligen tillagda diagrammet
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Lägga till SeriesCollection (diagramdatakälla) till diagrammet som sträcker sig från B1 till D1
chart->GetNISeries()->Add(new String("B1:D1"), true);

// Ställ in bubbelstorlekar
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));

// Ställ in X-axelvärden
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));

// Ställ in Y-axelvärden
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));

// Sparar Excel-filen
workbook->Save(outputChartTypeBubble);
Bubbeldiagram

Bubbeldiagram genererat av exempelkoden

Ytterligare diagram som stöds

Förutom diagrammen som visas ovan, stöder Aspose.Cells för C++ många ytterligare diagramtyper. Du kan se hela listan över sjökort som stöds genom att visa ChartType enumvärden.

Skaffa en gratis licens

Du kan prova API:et utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du skapar diagram i Excel-kalkylblad med C++. Specifikt har du sett hur man skapar linje-, pyramid- och bubbeldiagram med Aspose.Cells för C++ API. Vidare har du sett att API:et stöder ett stort antal andra diagram som du kan skapa i dina Excel-filer. Förutom diagram ger API:et många ytterligare funktioner för att arbeta med Excel-filer. Du kan utforska API:et i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även