C#
- Criando um gráfico no Excel
Este tutorial vai mostrar como criar gráfico no Excel (estou usando a versão Excel 2007) usando a linguagem C#.
Recursos usados :
Vamos criar uma planilha Excel contendo alguns dados a partir do qual iremos gerar um gráfico de barras no Excel.
Na imagem abaixo temos o leiaute da planilha contendo os dados que iremos gerar;
![]() |
A partir dos dados desta planilha iremos gerar o gráfico conforme mostrado na figura abaixo:
![]() |
Agora abra o Visual C# 2010 Express Edition e no menu File clique em New Project selecionando o template Windows Forms Application com o nome : CriarGraficoExcel
A seguir no formulário padrão form1.cs inclua os seguintes controles:
Conforme o leiaute abaixo:
![]() |
Vamos incluir uma referência em nosso projeto a biblioteca Microsoft.Office.Interop.Excel;
No menu Project clique em Add Reference;
Na janela Add Reference clique na guia COM e selecione : Microsoft Excel 12.0 Object Library e clique em OK;
![]() |
Vamos definir o código do formulário form1.cs definindo os namespaces a serem usados :
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
A seguir vamos definir o código do evento Click do botão de comando conforme abaixo:
private void btnGerarGrafico_Click(object sender, EventArgs e)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
//incluindo dados
xlWorkSheet.Cells[1, 1] = "";
xlWorkSheet.Cells[1, 2] = "Macoratti";
xlWorkSheet.Cells[1, 3] = "Miriam";
xlWorkSheet.Cells[1, 4] = "Jeffersom";
xlWorkSheet.Cells[2, 1] = "Matemática";
xlWorkSheet.Cells[2, 2] = "80";
xlWorkSheet.Cells[2, 3] = "65";
xlWorkSheet.Cells[2, 4] = "45";
xlWorkSheet.Cells[3, 1] = "Química";
xlWorkSheet.Cells[3, 2] = "78";
xlWorkSheet.Cells[3, 3] = "72";
xlWorkSheet.Cells[3, 4] = "60";
xlWorkSheet.Cells[4, 1] = "Física";
xlWorkSheet.Cells[4, 2] = "82";
xlWorkSheet.Cells[4, 3] = "80";
xlWorkSheet.Cells[4, 4] = "65";
xlWorkSheet.Cells[5, 1] = "Português";
xlWorkSheet.Cells[5, 2] = "75";
xlWorkSheet.Cells[5, 3] = "82";
xlWorkSheet.Cells[5, 4] = "68";
Excel.Range chartRange;
Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250);
Excel.Chart chartPage = myChart.Chart;
chartRange = xlWorkSheet.get_Range("A1", "d5");
chartPage.SetSourceData(chartRange, misValue);
chartPage.ChartType = Excel.XlChartType.xlColumnClustered;
xlWorkBook.SaveAs(txtArquivoExcel.Text, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
liberarObjetos(xlWorkSheet);
liberarObjetos(xlWorkBook);
liberarObjetos(xlApp);
MessageBox.Show("O arquivo Excel foi criado e pode ser aberto em c:\\dados\\GraficoExcel.xls");
}
|
Estamos criando um arquivo Excel com o nome e no caminho informados, inserindo alguns dados na planilha e gerando um gráfico de barras no Excel.
A rotina liberaObjetos() irá liberar os objetos criados e tem o seguinte código:
private void liberarObjetos(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Ocorreu um erro durante a liberação do objeto " + ex.ToString());
}
finally
{
GC.Collect();
}
}
|
Executando o projeto e clicando no botão de comando teremos:
![]() |
Verificando a pasta c:\dados podemos constatar o arquivo GraficoExcel.xls criado:
![]() |
Assim de forma bem simples mostramos como criar um arquivo .xls e gerar um gráfico simples no Excel usando a linguagem C#.
Obs: Para ler o arquivo Criado você pode usar o código abaixo. Ele exibirá o resultado em um controle DataGridView.
private void lerExcel()
{
string connectionString = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=NO;IMEX=1;""", txtArquivoExcel.Text);
string query = String.Format("select * from [{0}$]", "Plan1");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
gdvExcel.DataSource = dataSet.Tables[0];
}
|
Pegue o projeto completo aqui:
CriarGraficoExcel.zip
Slm 126:1
Quando o Senhor trouxe do cativeiro os que voltaram a Sião, éramos como os que estão sonhando.Slm 126:2
Então a nossa boca se encheu de riso e a nossa língua de cânticos. Então se dizia entre as nações: Grandes coisas fez o Senhor por eles.Slm 126:3
Sim, grandes coisas fez o Senhor por nós, e por isso estamos alegres.Slm 126:4
Faze regressar os nossos cativos, Senhor, como as correntes no sul.Slm 126:5
Os que semeiam em lágrimas, com cânticos de júbilo segarão.Slm 126:6
Aquele que sai chorando, levando a semente para semear, voltará com cânticos de júbilo, trazendo consigo os seus molhos.Referências: