none
Formatar conteudo Excel C# RRS feed

  • Pergunta

  • Boa tarde amigos,

    Estou tentando efetuar a leitura de um arquivo XML e colocar as informações em uma planilha excel, porém, ao invés de jogar o conteúdo que está correto no DataGridView para a célula no excel está jogando o conteúdo todo sem formatação. Já pesquisei em como setar a formatação para texto, mas não encontrei em lugar nenhum.

    Alguém sabe como faz isso?

    No aguardo de uma resposta e agradeço a todos, antecipadamente!

    quarta-feira, 27 de maio de 2015 16:29

Respostas

  • Fiz da maneira abaixo e funcionou perfeitamente e os dados foram como Text

     Microsoft.Office.Interop.Excel.Application XcelApp = new Microsoft.Office.Interop.Excel.Application();
                if (dataGridView1.Rows.Count >= 0)
                {
                    try
                    {
                        XcelApp.Application.Workbooks.Add(Type.Missing);
                        for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
                        {
                            XcelApp.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
                        }
                        //
                        XcelApp.Cells.NumberFormat = "@";
                        
                        for (int i = 0; i < dataGridView1.Rows.Count; i++)
                        {
                            for (int j = 0; j < dataGridView1.Columns.Count; j++)
                            {
                                XcelApp.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
    
                            }
                        }
                      
                        XcelApp.Columns.AutoFit();
                        XcelApp.Visible = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro : " + ex.Message);
                        XcelApp.Quit();
                    }
    Excel Formating Cells


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel


    • Editado Mr. GMSOFT quarta-feira, 27 de maio de 2015 18:12
    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 27 de maio de 2015 18:30
    • Marcado como Resposta Marcos SJ sexta-feira, 15 de janeiro de 2016 17:13
    quarta-feira, 27 de maio de 2015 18:00

Todas as Respostas

  • Como esta salvando este arquivo, esta usando o que?

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 27 de maio de 2015 17:01
  • Boa tarde amigo,

    Segue abaixo código que estou utilizando para jogar no excel:

     public static void ExportToExcel(DataGridView dgvDados, bool captions)
            {
                Microsoft.Office.Interop.Excel.Application XcelApp = new Microsoft.Office.Interop.Excel.Application();
                if (dgvDados.Rows.Count > 0)
                {
                    try
                    {
                        XcelApp.Application.Workbooks.Add(Type.Missing);
                        for (int i = 1; i < dgvDados.Columns.Count + 1; i++)
                        {
                            XcelApp.Cells[1, i] = dgvDados.Columns[i - 1].HeaderText;
                        }
                        //
                        for (int i = 0; i < dgvDados.Rows.Count - 1; i++)
                        {
                            for (int j = 0; j < dgvDados.Columns.Count; j++)
                            {
                                XcelApp.Cells[i + 2, j + 1] = Convert.ToString(dgvDados.Rows[i].Cells[j].Value.ToString());
                                
                            }
                        }
                        //XcelApp.FindFormat.NumberFormat = "0000000000";
                        //
                        XcelApp.Columns.AutoFit();
                        //
                        XcelApp.Visible = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro : " + ex.Message);
                        XcelApp.Quit();
                    }
                }
            }

    quarta-feira, 27 de maio de 2015 17:07
  • Fiz da maneira abaixo e funcionou perfeitamente e os dados foram como Text

     Microsoft.Office.Interop.Excel.Application XcelApp = new Microsoft.Office.Interop.Excel.Application();
                if (dataGridView1.Rows.Count >= 0)
                {
                    try
                    {
                        XcelApp.Application.Workbooks.Add(Type.Missing);
                        for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
                        {
                            XcelApp.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
                        }
                        //
                        XcelApp.Cells.NumberFormat = "@";
                        
                        for (int i = 0; i < dataGridView1.Rows.Count; i++)
                        {
                            for (int j = 0; j < dataGridView1.Columns.Count; j++)
                            {
                                XcelApp.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
    
                            }
                        }
                      
                        XcelApp.Columns.AutoFit();
                        XcelApp.Visible = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro : " + ex.Message);
                        XcelApp.Quit();
                    }
    Excel Formating Cells


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel


    • Editado Mr. GMSOFT quarta-feira, 27 de maio de 2015 18:12
    • Sugerido como Resposta Mr. GMSOFT quarta-feira, 27 de maio de 2015 18:30
    • Marcado como Resposta Marcos SJ sexta-feira, 15 de janeiro de 2016 17:13
    quarta-feira, 27 de maio de 2015 18:00
  • José,

    Montei 2 tutoriais há algum tempo sobre o preenchimento de planilhas do Excel com formatação.

    Se for fazer isso em .xlsx, vc pode utilizar o Open XML SDK:

    http://www.devmedia.com.br/excel-e-open-xml-sdk-gerando-novas-planilhas-xlsx-a-partir-de-templates/25854

    Agora para arquivos .xls, use o NPOI:

    http://www.devmedia.com.br/excel-x-net-framework-gerando-planilhas-xls-sem-o-uso-de-interop-com/27784

    quarta-feira, 27 de maio de 2015 18:13
  • GTS,

    Obrigado amigo! Vi que voce colocou o "@" ali, isso significa o que? Só para eu entender mesmo o que foi feito.

    Renato,

    Irei dar uma olhada nos seus tutoriais e depois te dou um feedback!

    Obrigado também Renato!

    quarta-feira, 27 de maio de 2015 18:28
  • Texto

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 27 de maio de 2015 18:30
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 13:55