Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 71.583
  • Views Posts: 542.288
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

VB.NET - FUNZIONE CHE CREA UN FILE CSV (CREARE UN FILE CSV DA CODICE)

VB.NET - FUNZIONE CHE CREA UN FILE CSV (CREARE UN FILE CSV DA CODICE)

Oggi vi metto a disposizione la funzione crea file .csv. Tutto è nato dal momento che mi serviva creare un file .xls ma non avendo installato sul mio PC Office ho deciso perché accanirmi sul file .xls lo creo in .csv e il gioco è fatto.

Se non volete utilizzare le API di Microsoft Office per creare un file CSV , perché pensate che il vostro cliente non abbia installato Office vi conviene il file .csv .

   Function CreaFileCSV(ByVal CartellaDestinaione As String, ByVal NomeFileCSV As String, ByVal ArrayDati(,) As String, ByVal Separatore As String) As Boolean

La funzione si basa su quattro parametri da passare :

   ByVal CartellaDestinaione As String, 
   ByVal NomeFileCSV As String, 
   ByVal ArrayDati(,) As String, 
   ByVal Separatore As String

Descrizione dei parametri :

   CartellaDestinazione ( ex: "c:\demo" )
   NomeFileCSV ( ex: "\prova.csv")
   ArrayDati(,) ( ex:  Dim Dati(,) As String = New String(,) {{"ant", "aunt"}, {"Sam", "Samantha"}, {"clozapine", "quetiapine"}, {"flomax", "volmax"}, {"toradol", "tramadol"}}
   Separatore ( ex: ";" Quello utilizzato in Office 2010)

Codice Visual Studio 2010 - Visual Basic .NET - VB.NET :

Public Class Form1
    ''' <summary>
    ''' Crea file Excel in formato CSV e salvalo nel PercorsoCartella
    ''' </summary>
    ''' <param name="CartellaDestinaione">Cartella Destinazione dove andrà a salvarsi il file CSV</param>
    ''' <param name="NomeFileCSV">Nome del file CSV</param>
    ''' <param name="ArrayDati">Array bidimensionale dove sono contenuti i dati da salvare</param>
    ''' <param name="Separatore">Separatore ';' o ',' serve per passare da una colonna ad un'altra </param>
    ''' <returns>Ritorna TRUE file creato FALSE errore creazione file</returns>
    ''' <remarks></remarks>
    Function CreaFileCSV(ByVal CartellaDestinaione As String, ByVal NomeFileCSV As String, ByVal ArrayDati(,) As String, ByVal Separatore As String) As Boolean
        CreaFileCSV = False
        Try
            'Verifico che esiste la cartella di DestinazioneFile
            If IO.Directory.Exists(CartellaDestinaione) = False Then
                'Se la cartella non esiste la crea
                MkDir(CartellaDestinaione)
            End If

            'Aggiungo il PercorsoCompletoFile ex: c:\Nome Cartella\NomeFile.csv
            Dim csvFile As String = CartellaDestinaione & NomeFileCSV

            Dim outFile As IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(csvFile, False)

            Dim data As Date = Date.Now()
            'ora la variabile "data" contiene la data e l'ora corrente

            outFile.WriteLine("Creazione File il " & data)
            outFile.WriteLine("")

            ' Prendi Lunghezza Max Riga e Collonna dell'Array.
            Dim riga As Integer = ArrayDati.GetUpperBound(0)
            Dim colonna As Integer = ArrayDati.GetUpperBound(1)

            ' Ciclo di tuto l'aray
            For i As Integer = 0 To riga
                For x As Integer = 0 To colonna
                    ' Prendo l'elemento che si trova nella riga = i e colonna = x.
                    Dim cella As String = ArrayDati(i, x)
                    outFile.Write(cella)
                    outFile.Write(Separatore)
                Next
                outFile.WriteLine()
            Next

            outFile.Close()

            'Se si vuoe visualizzare il contenuto del file appena creato
            'Console.WriteLine(My.Computer.FileSystem.ReadAllText(csvFile))

            'Apri Cartella dove contine il file CSV 
            System.Diagnostics.Process.Start(CartellaDestinaione)

            Return CreaFileCSV = True
        Catch
            MsgBox("Errore Creazione file CSV", vbCritical, "ERRORE")
            Return CreaFileCSV
        End Try
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim PercorsoCartella As String
        'Percorso della Cartella
        'Con questa istruzione My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData
        'restituisce un percorso dove potete scrivere e salvare tutti i vostri file è utile se lavorate 
        'su un programma che andrà a utilizzare Windows 7 o Windows Vista .
        PercorsoCartella = My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData & "\Expert"
        'Array Bidimensionale 
        Dim Dati(,) As String = New String(,) {{"ant", "aunt"},
                                                {"Sam", "Samantha"},
                                                {"clozapine", "quetiapine"},
                                                {"flomax", "volmax"},
                                                {"toradol", "tramadol"}}

        'Separatore è il carattere che permette di passare da una colonna ad un'altra
        'Il separatore per Office 2010 è ';'
        'Il separatore per Office 2000 è ','
        Dim Separatore As String = ";"
'Nome del File da creare
        Dim NomeFileCSV As String = "Export.csv"

        If CreaFileCSV(PercorsoCartella, "\" & NomeFileCSV, Dati, Separatore) Then
            Debug.Print("Caricato file") 'Scrivere che è stato creato correttamente il File
            End 'Esci dal progetto.
        End If

    End Sub

End Class

Categoria: VB.NET
martedì, 05 giu 2012 Ore. 20.16

Messaggi collegati


Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003