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
- Skapa linjediagram i Excel med C++
- Skapa pyramiddiagram i Excel med C++
- Skapa bubbeldiagram i Excel med C++
- Ytterligare diagram som stöds
- Skaffa en gratis licens
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.
- Skapa först en instans av klassen IWorkbook.
- Hämta kalkylbladet där du vill lägga till diagrammet med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Infoga data för diagrammet.
- Lägg till diagrammet i kalkylbladet med hjälp av IWorksheet->GetICharts()->Add (Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems ::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn).
- Få åtkomst till diagrammet med dess index med metoden IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Lägg till datakällan för diagrammet med hjälp av IChart->GetNISeries()->Add (intrusiveptrAspose::Cells::Systems::String area, bool isVertical) metod.
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
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);
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.
- Skapa först en instans av klassen IWorkbook.
- Hämta kalkylbladet där du vill lägga till diagrammet med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Infoga data för diagrammet.
- Lägg till diagrammet i kalkylbladet med hjälp av IWorksheet->GetICharts()->Add (Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems ::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn) metod.
- Få åtkomst till diagrammet med dess index med metoden IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Lägg till datakällan för diagrammet med hjälp av IChart->GetNISeries()->Add (intrusiveptrAspose::Cells::Systems::String area, bool isVertical) metod.
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
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);
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.
- Skapa först en instans av klassen IWorkbook.
- Hämta kalkylbladet där du vill lägga till diagrammet med metoden IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Infoga data för diagrammet.
- Lägg till diagrammet i kalkylbladet med hjälp av IWorksheet->GetICharts()->Add (Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow, Aspose::Cells::Systems ::Int32 upperLeftColumn, Aspose::Cells::Systems::Int32 lowerRightRow, Aspose::Cells::Systems::Int32 lowerRightColumn).
- Få åtkomst till diagrammet med dess index med metoden IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index).
- Lägg till datakällan, bubbelstorlekar, X-värden och Y-värden för diagrammet med hjälp av IChart->GetNISeries()->Add (intrusiveptrAspose::Cells::Systems::String area, bool isVertical), IChart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes (intrusiveptrAspose::Cells::Systems::String värde), IChart->GetNISeries()->GetObjectByIndex(0)->SetXValues (intrusiveptrAspose::Cells::Systems::String värde), IChart->GetNISeries()->GetObjectByIndex(0)->SetValues (intrusiveptrAspose::Cells::Systems::String värde) metoder respektive.
- Slutligen, spara Excel-filen med hjälp av IWorkbook->Spara (intrusiveptrAspose::Cells::Systems::String filnamn) metod.
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);
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.