none
Exportar arquivo Excel RRS feed

  • Pergunta

  • Bom dia,

    Tenho uma pequena aplicação em C# (Windows Form), tenho uma tela onde o usuário faz os filtros dele, por exemplo, saber quais funcionários estão com tarefas atrasadas, em execução, finalizadas sem atraso, ou pelo departamento e assim vai.

    Após os filtros os resultados são exibidos num DataGridView, fiz um menu para que seja feita a exportação para arquivo Excel (.xls), o mesmo está funcionando, porém ele não exporta os nomes das colunas, tais como: ID, Descrição, Funcionando, Inicio, Termino, Tempo Gasto e assim vai!

    Segue o código que fiz.

     private void excelToolStripMenuItem_Click(object sender, EventArgs e)
            {
                SaveFileDialog salvar = new SaveFileDialog();
    
                Excel.Application App; //aplicação excel
                Excel.Workbook Workbook; //pasta
                Excel.Worksheet Worksheet; //planilha
                object misValue = System.Reflection.Missing.Value;
    
                App = new Excel.Application();
                Workbook = App.Workbooks.Add(misValue);
                Worksheet = (Excel.Worksheet)Workbook.Worksheets.get_Item(1);
                int i = 0;
                int j = 0;
    
                // passa as celulas do DataGridView para a Pasta do Excel 
                for (i = 0; i <= dtTempo.RowCount - 1; i++)
                {
                    for (j = 0; j <= dtTempo.ColumnCount - 1; j++)
                    {
                        DataGridViewCell cell = dtTempo[j, i];
                        Worksheet.Cells[i + 1, j + 1] = cell.Value;
                    }
                }
    
                //define algumas propriedades da caixa salvar
    
                salvar.Title = "Relatório Tempo";
                salvar.Filter = "Arquivo Excel *.xls | *.xls";
                salvar.ShowDialog(); //mostrar
    
                //salvar arquivo
                Workbook.SaveAs(salvar.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
                     Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
    
                Workbook.Close(true, misValue, misValue);
                App.Quit(); // encerra o excel 
    
                MessageBox.Show("Exportado com sucesso!");
            }
    Poderiam me ajudar para fazer que o seja exportada junto os nomes das colunas, PS: O meu não estava funcionando direito, então peguei esse exemplo que está funcionando porém com esse defeito!
    terça-feira, 26 de novembro de 2019 11:14

Respostas

  • Problema resolvido, para que as colunas se ajeitem e fiquem do tamanho correto basta colocas um

    Worksheet.Collumns.AutoFit();

    já para pegar o nome da coluna coloquei um outro for ficando assim

    SaveFileDialog salvar = new SaveFileDialog();

                Excel.Application App; //aplicação excel
                Excel.Workbook Workbook; //pasta
                Excel.Worksheet Worksheet; //planilha
                object misValue = System.Reflection.Missing.Value;

                App = new Excel.Application();
                Workbook = App.Workbooks.Add(misValue);
                Worksheet = (Excel.Worksheet)Workbook.Worksheets.get_Item(1);

                for (int i = 1; i < dtTempo.Columns.Count + 1; i++)
                {
                    Worksheet.Cells[1, i] = dtTempo.Columns[i - 1].HeaderText;
                }
                //
                for (int i = 0; i < dtTempo.Rows.Count - 1; i++)
                {
                    for (int j = 0; j < dtTempo.Columns.Count; j++)
                    {
                        Worksheet.Cells[i + 2, j + 1] = dtTempo.Rows[i].Cells[j].Value.ToString();
                    }
                }

                //define algumas propriedades da caixa salvar

                Worksheet.Columns.AutoFit();

                salvar.Title = "Relatório Tempo";
                salvar.FileName = "Relatório Gerenciamento de Tempo";
                salvar.Filter = "Arquivo Excel .xls | .xls";
                salvar.ShowDialog(); //mostrar

                //salvar arquivo
                Workbook.SaveAs(salvar.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
                     Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

                Workbook.Close(true, misValue, misValue);
                App.Quit(); // encerra o excel 

                MessageBox.Show("Exportado com sucesso!");

    • Marcado como Resposta Lucas Lott terça-feira, 26 de novembro de 2019 20:37
    terça-feira, 26 de novembro de 2019 20:37