Salvar o conteúdo do MSFlexGrid no formato CVS


Se você precisa salvar o conteúdo de um controle MSFLexGrid no formato CVS , então esta dica lhe será muito útil.

O código abaixo faz o serviço sem muito esforço.

Private Sub SalvarComoCSV(ByVal strFilename As String, ByRef msFlex As MSFlexGrid)
Const SEPARATOR_CHAR As String = " "

Dim intFreeFile As Integer
Dim strLine As String
Dim r As Integer
Dim c As Integer

intFreeFile = FreeFile

Open strFilename For Output As #intFreeFile

With msFlex
    ' cada linha
     For r = 0 To .Rows - 1
      strLine = ""

        ' cada coluna
        For c = 0 To .Cols - 1
          strLine = strLine & IIf(c = 0, "", SEPARATOR_CHAR) & .TextMatrix(r, c)
        Next c

       Print #intFreeFile, strLine
    Next r
End With

Close #intFreeFile
End Sub

Para testar crie um projeto usando um MSFlexGrid no VB . Abaixo o layout de um exemplo usando o MSFlexGrid vinculado a tabela Authors do banco de dados Biblio.mdb.

Para fazer a vinculação basta definir as propriedades

Agora para gerar um arquivo no formato CVS com o conteúdo do grid é só fazer a chamada da seguinte maneira:

Private Sub Command1_Click()
   Call SalvarComoCSV(Text1.Text, MSFlexGrid1)
   MsgBox "Arquivo " & Text1.Text & " Salvo com sucesso !", vbInformation
End Sub

onde: text1.text é a caixa de texto onde você informa o caminho e o nome do arquivo que deseja gerar.

Após executar o projeto teremos:

Se você abrir o arquivo teste.cvs gerado vai perceber que o conteúdo do grid esta todo lá:

Até próxima dica ...


José Carlos Macoratti