Usuário com melhor resposta
Formatar conteudo Excel C#

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!
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(); }
A 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
Todas as Respostas
-
-
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(); } } }
-
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(); }
A 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
-
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:
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
-
-
-