+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

Importare dati da file .csv a file excel con visual basic.net

  1. #1
    ettore71 non è in linea Novello
    Buona sera a tutti,
    scusate se esiste già una discussione simile ma ho cercato sul forum e non ho trovato nulla per risolvere il mio problema.
    Ho creato un programmino che cliccando un pulsante legge un file .csv il codice è il seguente e funziona.

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim Utente As String = System.Environment.UserName
            Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Users\" & Utente & "\Desktop\Test.csv")
                MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
                MyReader.Delimiters = New String() {"*"}
                Dim currentRow As String()
                While Not MyReader.EndOfData
                    Try
                        currentRow = MyReader.ReadFields()
                        MsgBox(currentRow(3))
                    Catch ex As Microsoft.VisualBasic. _
                        FileIO.MalformedLineException
                        MsgBox("Linea " & ex.Message &
                        "non è valida e verrà saltata.")
                    End Try
                End While
            End Using
        End Sub
    
    il problema è che io vorrei mettere i dati che ricavo in una colonna di un foglio excel e non in una msgbox, con il codice sotto mi creo il file excel ma poi non so come mettere i dati per esempio nella colonna "A"
     Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim Utente As String = System.Environment.UserName
            Dim fileExcel As String = "C:\Users\" & Utente & "\Desktop\Dati.xlsx"
                Dim oExcel As Object
            Dim oSheet As Worksheet
                oExcel = CreateObject("Excel.Application")
            Dim oBook As Workbook
                oBook = oExcel.Workbooks.add
                oSheet = oExcel.Worksheets(1)
            oSheet.Name = "Foglio1"
                oBook.SaveAs(fileExcel)
                oBook.Close()
                oBook = Nothing
                oExcel.Quit()
                oExcel = Nothing
              end sub
    
    ringrazio chi avrà tempo e voglia per aiutarmi.

  2. #2
    Dev-01 non è in linea Scribacchino
    Ciao,

    dai un'occhiata qui.

    In genere è la prima fonte da consultare subito prima di formulare una richiesta a Google.

  3. #3
    ettore71 non è in linea Novello
    Grazie per la risposta, ho provato con questo codice
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim Utente As String = System.Environment.UserName
            Dim fileExcel As String = "C:\Users\" & Utente & "\Desktop\Dati.xlsx"
            Dim oExcel As Object
            Dim oSheet As Worksheet
            oExcel = CreateObject("Excel.Application")
            Dim oBook As Workbook
            oBook = oExcel.Workbooks.add
            oSheet = oExcel.Worksheets(1)
            oSheet.Name = "Foglio1"
            Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Users\" & Utente & "\Desktop\Test.csv")
                MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
                MyReader.Delimiters = New String() {"*"}
                Dim currentRow As String()
                While Not MyReader.EndOfData
                    Try
                        currentRow = MyReader.ReadFields()
                        oSheet.Rows.Cells(1).value = currentRow(3)
    
                    Catch ex As Microsoft.VisualBasic. _
                        FileIO.MalformedLineException
                        MsgBox("Linea " & ex.Message &
                        "non è valida e verrà saltata.")
                    End Try
                End While
            End Using
            oBook.SaveAs(fileExcel)
            oBook.Close()
            oBook = Nothing
            oExcel.Quit()
            oExcel = Nothing
        End Sub
    
    nella variabile currentRow ci sono cinque righe, se uso la msgbox funziona, si apre la msgbox cinque volte ogni volta con una riga diversa mentre nel foglio excel visualizza solo l' ultima riga nella cella "A1", ho provato anche con un ciclo "for next" non riesco a farlo funzionare.

  4. #4
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Mi pare sia ovvio, dato che usi sempre la stessa cella oSheet.Rows.Cells(1).value, per cui sovrascrive sempre quella cella.

    Devi usare un numeratore per indentificare la cella diversa ogni volta che leggi CurrentRow(3)
    ℹ️ Leggi di più su gibra ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 4
    Ultimo Post: 01-03-2012, 01:12
  2. Importare dati da N file excel in un unico file excel
    Da user_lab nel forum Microsoft Excel
    Risposte: 0
    Ultimo Post: 06-12-2011, 13:27
  3. Importare dati da un altro file excel
    Da ertiby nel forum Microsoft Excel
    Risposte: 1
    Ultimo Post: 11-07-2010, 17:06
  4. Risposte: 8
    Ultimo Post: 25-03-2009, 14:22
  5. Importare un dati da un file excel verso un altro file excel
    Da ciccios100 nel forum Microsoft Excel
    Risposte: 3
    Ultimo Post: 11-09-2008, 16:20