Jump to content
hc19

Guardar dados de um DataGridView directamente para um ficheiro *.txt

Recommended Posts

hc19

Boa tarde,

Será que alguém me podia ajudar com esta pequena questão?

Pretendo guardar dados retirados de um excel (*.xls) para um DataGridView, e daí após ter feito certos filtros, guardar a informação num *.txt.

Caso me possam ajudar, agradecia.

Comprimentos...

Share this post


Link to post
Share on other sites
SLIFE

Boas

pelo que me parece queres importar dados do excel para dentro de um datagridview e depois exportar para um txt, é isso??

Se for experimenta isto:

Try
                
                Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;data source= c:\ficheiroExcel.xls; Extended Properties=Excel 8.0;"
   
                da = New OleDbDataAdapter("SELECT * FROM [Folha1$]", conexao_Excel)
                ' preenche a tabela com dados da Folha 1 de Excel
                dt = New DataTable
                da.Fill(dt)
                ' define a chave primaria
                dt.PrimaryKey = New DataColumn() {dt.Columns(0)}

                dt.DefaultView.AllowDelete = False
                dt.DefaultView.AllowEdit = True
                dt.DefaultView.AllowNew = True
                ' vincula o modo de visao padrão da tabela ao datagrid
                DataGridView1.DataSource = dt.DefaultView
               
                btnExportaTXT.Enabled = True
            Catch ex As Exception
                MsgBox("Erro", MsgBoxStyle.Critical, "Converter Mercalys")
            End Try
        End If

Para enviares para o TXT fazes:

'define as variáveis usadas no projeto
        Dim I As Integer = 0
        Dim j As Integer = 0
        Dim valorCelula As String = ""
        Dim linha As String = ""

        'verifica se o arquivo existe e exclui o arquivo ja existente
        Try
            If File.Exists(nomeArquivo) = True Then
                File.Delete(nomeArquivo)
                MsgBox("Arquivo " & nomeArquivo & " excluido...")
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try

        'define um objeto do tipo StreamWriter
        Try
            Dim objWriter As New StreamWriter(nomeArquivo, True)
            'percorre o datagridview obtendo o valor de cada célula e montando a linha 
            For j = 0 To (DataGridView1.Rows.Count - 2)
                For I = 0 To (DataGridView1.Columns.Count - 1)
                    If Not TypeOf DataGridView1.CurrentRow.Cells.Item(I).Value Is DBNull Then
                        valorCelula = DataGridView1.Item(I, j).Value
                    Else
                        valorCelula = ""
                    End If
                    linha = linha + valorCelula
                Next
                'escreve a linha no arquivo 
                objWriter.WriteLine(linha)
                linha = ""
            Next
            'fecha o arquivo texto
            objWriter.Close()
            MsgBox("Arquivo Texto gerado com sucesso.")
        Catch e As Exception
            MessageBox.Show("Ocorreu um erro durante a escrita no arquivo.  " + e.ToString())
        Finally
            'fecha o arquivo
            FileClose(1)
        End Try

Não te esqueças de chamar os respectivos imports!

Espero ter ajudado.

Cpts

SJC


Sandro Coelho

Share this post


Link to post
Share on other sites
SLIFE

Obg pela ajuda.

Comprimentos

De nada!

Espero ter ajudado.

Não te esqueças, se resolves-te o problema coloca o topico como resolvido!

Um abraço

SJC


Sandro Coelho

Share this post


Link to post
Share on other sites
hc19

Penso que isto poderá ajudar algumas pessoas,

em vez de utilizar esta linha de código:

Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;data source= c:\ficheiroExcel.xls; Extended Properties=Excel 8.0;"

Utilizem antes esta:

conexao_Excel = "Provider=Microsoft.ACE.OleDb.12.0; data source=c:\ficheiroExcel.xls; Extended Properties=Excel 8.0;"

A diferença é que na primeira só deixa abrir ficheiros xls, no enquanto a segunda já abre ficheiro xlsx e xls.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.