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: