EXPORTAR DATAGRIDVIEW EM TXT FIXO

FERNANDOCTRLC 14/11/2012 17:37:01
#414233
Boa Tarde a todos

Estou desenvolvendo uma aplicação para gerar um layout de importação.
eu preciso exportar um datagridview em um txt fixo eu tenho o layout definido só falta saber como exportar em txt fixo.

ainda não tenho o codigo de exportação porque não sei por onde começar algum tem uma luz para mim ajudar
KERPLUNK 14/11/2012 17:49:03
#414236
DataGridView não é fonte de dados. Se fez como a maioria e preencheu o datagrid usando um datatable, abra novamente o datatable com a mesma query e percorra-o exportando os dados para um objeto FileStream
Se você fez da maneira realmente profissional, usando uma lista genérica de entidades, é a mesma coisa, mas vai ser muito mais simples.

Já pensou na possibilidade de exportar para um XML ao invés de um CSV?
FERNANDOCTRLC 14/11/2012 17:54:41
#414238
Eu estou fazendo essa aplicação para gerar um aquivo de integração para outro sistema que so aceita dados no layou fixo determinado por eles,
eu estou carregando o grid apartir de uma planilha do excel, eu preciso transformar essa planilha no layout expecificad pela outra empresa.

alguem tem um modelo de codigo ou uma luz por onde começar


dede ja muinto obrigado pela ajuda
KERPLUNK 14/11/2012 17:58:54
#414239
Como é a sua rotina de preenchimento do grid?
FERNANDOCTRLC 14/11/2012 18:01:58
#414240
o meu codigo esta desta maneira
[Ô]ts System.Data.OleDb

Public Class Form1

Private da As OleDbDataAdapter
Private dt As DataTable
Dim conexao_Excel As String = [Ô]Provider=Microsoft.Jet.OleDb.4.0;data source=P:\1 - Prosoft\4. Dados Clientes\Geacon\13-11-2012
otas2010.xls;Extended Properties=Excel 8.0;[Ô]

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
[ô] cria um novo dataadapter
da = New OleDbDataAdapter([Ô]SELECT * FROM [Plan1$][Ô], conexao_Excel)
[ô]
[ô] preenche a tabela com dados da planilha Excel
dt = New DataTable
da.Fill(dt)

[ô] define a chave primaria
dt.PrimaryKey = New DataColumn() {dt.Columns(0)}

[ô] registros somente podem ser inseridos usando esta tecnica
dt.DefaultView.AllowDelete = False
dt.DefaultView.AllowEdit = True
dt.DefaultView.AllowNew = True

[ô] vincula o modo de visao padrão da tabela ao datagrid
dgExcel.DataSource = dt.DefaultView
End Sub
End Class
[Ô]

Obrigado pela ajuda
KERPLUNK 14/11/2012 18:10:22
#414241
Como eu imaginava, um DataTable.
Pelo que vi, você edita o grid depois de carregar os dados, certo?
FERNANDOCTRLC 14/11/2012 18:13:56
#414242
isso mesmo
KERPLUNK 14/11/2012 18:20:34
#414243
Ok. Um DataGridView é um composto de Linhas e colunas. Veja que existe uma propriedade chamada Rows, que é uma lista de DataGridViewRow e dentro de cada ítem dessa lista existe uma propriedade chamada Cell, que representa uma célula. Logo:


Dim arquivo as String
For Each linha In dgExcel.Rows
For Each valor in linha.Cells
[ô]Adicionar para o FileStream
arquivo = arquivo & valor.Value.ToString()
Next valor
Next linha
MessageBox.Show(arquivo)
[ô]aqui, faça a rotina para gravar o arquivo
Tópico encerrado , respostas não são mais permitidas