Створення діаграм Excel C++

Діаграми є чудовим інструментом для стислого відображення даних. Крім того, вони представляють дані візуально, полегшуючи використання великих обсягів даних. Ви можете знайти діаграми корисними в ситуаціях, коли вам потрібно відобразити такі дані, як порівняння місячного бюджету або рівень впровадження продукту. У світлі цього ця стаття навчить вас створювати діаграми у файлах Excel за допомогою C++.

C++ API для створення діаграм Excel

Aspose.Cells for C++ — це рідна бібліотека C++, яка дозволяє створювати, читати та змінювати файли Excel без встановлення Microsoft Excel. API також підтримує створення діаграм у файлах Excel. Ви можете встановити API через NuGet або завантажити його безпосередньо з розділу Завантаження.

PM> Install-Package Aspose.Cells.Cpp

Створення лінійної діаграми в Excel за допомогою C++

Щоб створити лінійну діаграму, використовуйте значення переліку ChartTypeLine під час додавання діаграми. Нижче наведено кроки для створення лінійної діаграми у файлі Excel.

Нижче наведено зразок коду для створення лінійної діаграми в Excel за допомогою C++.

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Шлях вихідного файлу Excel
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// Створіть нову книгу
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Отримайте перший аркуш, який створюється за замовчуванням
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Додавання зразкових значень до клітинок
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);

// Додавання діаграми на аркуш
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);

// Доступ до екземпляра щойно доданої діаграми
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Додавання SeriesCollection (джерело даних діаграми) до діаграми від комірки «A1» до «B3»
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Збереження файлу Excel
workbook->Save(outputChartTypeLine);
Лінійна діаграма

Лінійна діаграма, створена за зразком коду

Створення пірамідної діаграми в Excel за допомогою C++

Щоб створити пірамідну діаграму, використовуйте значення переліку ChartTypePyramid, щоб указати тип діаграми під час додавання діаграми. Нижче наведено кроки для створення пірамідальної діаграми у файлі Excel.

Нижче наведено приклад коду для створення пірамідальної діаграми в Excel за допомогою C++.

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Шлях вихідного файлу Excel
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// Створіть нову книгу
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Отримайте перший аркуш, який створюється за замовчуванням
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Додавання зразкових значень до клітинок
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);

// Додавання діаграми на аркуш
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// Доступ до екземпляра щойно доданої діаграми
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Додавання SeriesCollection (джерело даних діаграми) до діаграми від комірки «A1» до «B3»
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Збереження файлу Excel
workbook->Save(outputChartTypePyramid);
Піраміда діаграми

Пірамідна діаграма, створена за зразком коду

Створення бульбашкової діаграми в Excel за допомогою C++

Щоб створити бульбашкову діаграму, передайте значення переліку ChartTypeBubble у метод IWorksheet->GetICharts()->Add(). Нижче наведено кроки для створення бульбашкової діаграми у файлі Excel.

Нижче наведено приклад коду для створення бульбашкової діаграми в Excel за допомогою C++.

// Шлях вихідного каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Шлях вихідного файлу Excel
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// Створіть нову книгу
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Отримайте перший аркуш, який створюється за замовчуванням
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Заповніть дані для ряду діаграми
// Значення Y
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Значення Y"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Розмір бульбашки
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Розмір бульбашки"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// Значення X
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("Значення X"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);

// Установіть ширину першого стовпця
worksheet->GetICells()->SetColumnWidth(0, 12);

// Додавання діаграми на аркуш
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);

// Доступ до екземпляра щойно доданої діаграми
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Додавання SeriesCollection (джерело даних діаграми) до діаграми від B1 до D1
chart->GetNISeries()->Add(new String("B1:D1"), true);

// Встановити розміри бульбашок
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));

// Встановіть значення осі Х
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));

// Встановіть значення осі Y
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));

// Збереження файлу Excel
workbook->Save(outputChartTypeBubble);
Бульбашкова діаграма

Бульбашкова діаграма, створена за зразком коду

Додаткові підтримувані діаграми

Крім наведених вище діаграм, Aspose.Cells for C++ підтримує багато додаткових типів діаграм. Ви можете переглянути повний список підтримуваних діаграм, переглянувши значення переліку ChartType.

Отримайте безкоштовну ліцензію

Ви можете спробувати API без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як створювати діаграми в електронних таблицях Excel за допомогою C++. Зокрема, ви бачили, як створювати лінійні, пірамідні та бульбашкові діаграми за допомогою Aspose.Cells for C++ API. Крім того, ви бачили, що API підтримує велику кількість інших діаграм, які можна створювати у файлах Excel. Окрім діаграм, API надає багато додаткових функцій для роботи з файлами Excel. Ви можете детально вивчити API, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також