Criar gráficos do Excel C++

Os gráficos são uma excelente ferramenta para mostrar dados de forma concisa. Além disso, eles representam os dados visualmente, facilitando o consumo de grandes quantidades de dados. Você pode achar que os gráficos são úteis em situações em que precisa mostrar dados, como a comparação de orçamento mensal ou a taxa de adoção do produto. Diante disso, este artigo ensinará como criar gráficos em arquivos do Excel usando C++.

API C++ para criar gráficos do Excel

Aspose.Cells for C++ é uma biblioteca nativa de C++ que permite criar, ler e modificar arquivos Excel sem exigir a instalação do Microsoft Excel. A API também suporta a criação de gráficos em arquivos do Excel. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Cells.Cpp

Criar gráfico de linhas no Excel usando C++

Para criar um gráfico de linhas, use o valor de enumeração ChartTypeLine ao adicionar o gráfico. A seguir estão as etapas para criar um gráfico de linhas em um arquivo do Excel.

Veja a seguir o código de exemplo para criar um gráfico de linhas no Excel usando C++.

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Caminho do arquivo excel de saída
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// Criar uma nova pasta de trabalho
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Obtenha a primeira planilha que é criada por padrão
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Adicionando valores de amostra às células
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);

// Adicionando um gráfico à planilha
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);

// Acessando a instância do gráfico recém-adicionado
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Adicionando SeriesCollection (fonte de dados do gráfico) ao gráfico variando de célula "A1" a "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Salvando o arquivo Excel
workbook->Save(outputChartTypeLine);
Gráfico de linha

Gráfico de linhas gerado pelo código de amostra

Criando um gráfico de pirâmide no Excel usando C++

Para criar um gráfico de pirâmide, use o valor de enumeração ChartTypePyramid para especificar o tipo de gráfico ao adicionar o gráfico. A seguir estão as etapas para criar um gráfico de pirâmide em um arquivo do Excel.

Veja a seguir o código de exemplo para criar um gráfico de pirâmide no Excel usando C++.

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Caminho do arquivo excel de saída
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// Criar uma nova pasta de trabalho
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Obtenha a primeira planilha que é criada por padrão
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Adicionando valores de amostra às células
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);

// Adicionando um gráfico à planilha
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);

// Acessando a instância do gráfico recém-adicionado
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Adicionando SeriesCollection (fonte de dados do gráfico) ao gráfico variando de célula "A1" a "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);

// Salvando o arquivo Excel
workbook->Save(outputChartTypePyramid);
Gráfico de pirâmide

Gráfico de pirâmide gerado pelo código de exemplo

Criar gráfico de bolhas no Excel usando C++

Para criar um gráfico de bolhas, passe o valor enum ChartTypeBubble para o método IWorksheet->GetICharts()->Add(). A seguir estão as etapas para criar um gráfico de bolhas em um arquivo do Excel.

Veja a seguir o código de exemplo para criar um gráfico de bolhas no Excel usando C++.

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Caminho do arquivo excel de saída
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// Criar uma nova pasta de trabalho
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();

// Obtenha a primeira planilha que é criada por padrão
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);

// Preencha os dados para a série do gráfico
// Valores Y
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Valores Y"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Tamanho da bolha
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Tamanho da bolha"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// Valores X
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("Valores X"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);

// Definir a largura da primeira coluna
worksheet->GetICells()->SetColumnWidth(0, 12);

// Adicionando um gráfico à planilha
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);

// Acessando a instância do gráfico recém-adicionado
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);

// Adicionando SeriesCollection (fonte de dados do gráfico) ao gráfico que varia de B1 a D1
chart->GetNISeries()->Add(new String("B1:D1"), true);

// Definir tamanhos de bolha
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));

// Definir valores do eixo X
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));

// Definir valores do eixo Y
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));

// Salvando o arquivo Excel
workbook->Save(outputChartTypeBubble);
Gráfico de bolhas

Gráfico de bolhas gerado pelo código de amostra

Gráficos Adicionais Suportados

Além dos gráficos mostrados acima, o Aspose.Cells para C++ oferece suporte a muitos tipos de gráficos adicionais. Você pode visualizar a lista completa de gráficos suportados visualizando os valores de enumeração ChartType.

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como criar gráficos em planilhas do Excel usando C++. Especificamente, você viu como criar gráficos de Linha, Pirâmide e Bolha usando Aspose.Cells para C++ API. Além disso, você viu que a API suporta um grande número de outros gráficos que você pode criar em seus arquivos do Excel. Além de gráficos, a API oferece muitos recursos adicionais para trabalhar com arquivos do Excel. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também