Twórz wykresy w Excelu C++

Wykresy są doskonałym narzędziem do zwięzłego przedstawiania danych. Ponadto przedstawiają dane wizualnie, ułatwiając konsumowanie dużych ilości danych. Wykresy mogą okazać się pomocne w sytuacjach, w których trzeba pokazać dane, takie jak porównanie miesięcznego budżetu lub współczynnik przyjęcia produktu. W związku z tym w tym artykule dowiesz się, jak tworzyć wykresy w plikach Excela przy użyciu języka C++.

C++ API do tworzenia wykresów w Excelu

Aspose.Cells for C++ to natywna biblioteka C++, która umożliwia tworzenie, odczytywanie i modyfikowanie plików programu Excel bez konieczności instalowania programu Microsoft Excel. API obsługuje również tworzenie wykresów w plikach Excel. Możesz zainstalować API poprzez NuGet lub pobrać bezpośrednio z sekcji Downloads.

PM> Install-Package Aspose.Cells.Cpp

Utwórz wykres liniowy w programie Excel przy użyciu C++

Aby utworzyć wykres liniowy, użyj wartości wyliczenia ChartTypeLine podczas dodawania wykresu. Poniżej przedstawiono kroki tworzenia wykresu liniowego w pliku programu Excel.

Poniżej przedstawiono przykładowy kod służący do tworzenia wykresu liniowego w programie Excel przy użyciu języka C++.

// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");

// Ścieżka wyjściowego pliku programu Excel
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// Utwórz nowy skoroszyt
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Pobierz pierwszy arkusz roboczy, który jest tworzony domyślnie
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Dodawanie przykładowych wartości do komórek
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);

// Dodanie wykresu do arkusza
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);

// Dostęp do instancji nowo dodanego wykresu
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Dodanie SeriesCollection (źródło danych wykresu) do wykresu w zakresie od komórki „A1” do „B3”
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Zapisywanie pliku Excela
workbook->Save(outputChartTypeLine);
Wykres liniowy

Wykres liniowy wygenerowany przez przykładowy kod

Tworzenie wykresu piramidowego w Excelu przy użyciu C++

Aby utworzyć wykres piramidalny, użyj wartości wyliczenia ChartTypePyramid, aby określić typ wykresu podczas dodawania wykresu. Poniżej przedstawiono kroki tworzenia wykresu piramidalnego w pliku programu Excel.

Poniżej znajduje się przykładowy kod służący do tworzenia wykresu piramidalnego w programie Excel przy użyciu języka C++.

// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");

// Ścieżka wyjściowego pliku programu Excel
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// Utwórz nowy skoroszyt
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Pobierz pierwszy arkusz roboczy, który jest tworzony domyślnie
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Dodawanie przykładowych wartości do komórek
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);

// Dodanie wykresu do arkusza
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// Dostęp do instancji nowo dodanego wykresu
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Dodanie SeriesCollection (źródło danych wykresu) do wykresu w zakresie od komórki „A1” do „B3”
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Zapisywanie pliku Excela
workbook->Save(outputChartTypePyramid);
Wykres piramidy

Wykres ostrosłupowy wygenerowany przez przykładowy kod

Utwórz wykres bąbelkowy w programie Excel przy użyciu C++

Aby utworzyć wykres bąbelkowy należy przekazać wartość enum ChartTypeBubble do metody IWorksheet->GetICarts()->Add(). Poniżej przedstawiono kroki tworzenia wykresu bąbelkowego w pliku programu Excel.

Poniżej znajduje się przykładowy kod służący do tworzenia wykresu bąbelkowego w programie Excel przy użyciu języka C++.

// Ścieżka katalogu wyjściowego.
StringPtr outDir = new String("OutputDirectory\\");

// Ścieżka wyjściowego pliku programu Excel
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// Utwórz nowy skoroszyt
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Pobierz pierwszy arkusz roboczy, który jest tworzony domyślnie
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Uzupełnij dane dla serii wykresu
// Wartości Y
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Wartości Y"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Rozmiar bąbelków
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Rozmiar bąbelków"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// Wartości X
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("Wartości X"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);

// Ustaw szerokość pierwszej kolumny
worksheet->GetICells()->SetColumnWidth(0, 12);

// Dodanie wykresu do arkusza
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);

// Dostęp do instancji nowo dodanego wykresu
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Dodanie SeriesCollection (źródła danych wykresu) do wykresu w zakresie od B1 do D1
chart->GetNISeries()->Add(new String("B1:D1"), true);

// Ustaw rozmiary bąbelków
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));

// Ustaw wartości osi X
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));

// Ustaw wartości osi Y
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));

// Zapisywanie pliku Excela
workbook->Save(outputChartTypeBubble);
Wykres bąbelkowy

Wykres bąbelkowy wygenerowany przez przykładowy kod

Dodatkowe obsługiwane wykresy

Poza wykresami pokazanymi powyżej, Aspose.Cells for C++ obsługuje wiele dodatkowych typów wykresów. Możesz wyświetlić pełną listę obsługiwanych wykresów, przeglądając wartości wyliczeniowe ChartType.

Uzyskaj bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się tworzyć wykresy w arkuszach kalkulacyjnych programu Excel przy użyciu języka C++. W szczególności widziałeś, jak tworzyć wykresy liniowe, ostrosłupowe i bąbelkowe za pomocą Aspose.Cells for C++ API. Ponadto zauważyłeś, że interfejs API obsługuje wiele innych wykresów, które możesz utworzyć w plikach Excel. Oprócz wykresów interfejs API zapewnia wiele dodatkowych funkcji do pracy z plikami Excel. Możesz szczegółowo zapoznać się z interfejsem API, odwiedzając oficjalną dokumentację. W przypadku jakichkolwiek pytań prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.

Zobacz też