115 messaggi dal 01 novembre 2012
Buonasera, come detto nel titolo devo convertire una tabella da un database MySql in excel....come devo fare ?? se mai discriminando alcuni record che non soddisfano una condizione ??

Nando
3.939 messaggi dal 28 gennaio 2003
Convertire una tabella in puro Excel non so, senza una libreria esterna, ma convertirla in formato csv è estremamente semplice ed Excel la legge senza problemi.
ciao
115 messaggi dal 01 novembre 2012
ciao, grazie per la risposta, va bene anche in csv tanto excel la legge lo stesso....come fare ?
11.886 messaggi dal 09 febbraio 2002
Contributi

va bene anche in csv

ok, in questo caso puoi usare la query SELECT ... INTO OUTFILE.
http://dev.mysql.com/doc/refman/5.1/en/select-into.html
Si tratta di una SELECT a tutti gli effetti, quindi potrai filtrare i dati con una WHERE. La clausola INTO OUTFILE, invece, ti permetterà di decidere il percorso del file e quali caratteri usare come separatore di campo e di linea.

Enjoy learning and just keep making
3.939 messaggi dal 28 gennaio 2003
La soluzione proposta da BrightSoul non l'ho mai provata, e si tratta quindi di provarla.

Per quanto riguarda invece la domanda:
ciao, grazie per la risposta, va bene anche in csv tanto excel la legge lo stesso....come fare ?


è talmente semplice che dirlo toglierebbe molto al piacere di farlo da soli.
Io ho letto la tabella in un DataTable. A questo punto ho tutto, nomi dei campi e valori.

ps. naturalmente se serve ancora, riporto la procedura che mi sono creato.

ciao
115 messaggi dal 01 novembre 2012
Ciao, non ho ancora provato col suggerimento di Moreno, comunque io fino ad aprire il database e a sapere quali campi scrivere ci sono....la mia ignoranza come prima cosa nel creare il file, che possa aprire l'excel, dove andare a mettere come testata i nomi dei campi che voglio esportare e poi i record che voglio scrivere.
Il tutto poi alla fine deve essere aperto dal lato Client e quindi dare la possibilità di aprirlo o salvarlo in locale sul pc del Client.

sono stato più chiaro ora ?
11.886 messaggi dal 09 febbraio 2002
Contributi
Dimenticavo questo: la mia soluzione è limitata al caso in cui vuoi creare il file sullo stesso server in cui si trova il database. A volte però il webserver si trova su una macchina diversa, e in questo caso è necessario usare la soluzione di Pietro.
Modificato da BrightSoul il 18 giugno 2014 15.16 -

Enjoy learning and just keep making
115 messaggi dal 01 novembre 2012
alloea io ho fatto questo....ma c'e' un problema che scrivo alla fine:

   Protected Sub Button14_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button14.Click
        Dim ServerString As String = "Server=localhost;User Id=root;Password=*****;Database=db"
        Dim SQLCon As MySqlConnection = New MySqlConnection
        SQLCon.ConnectionString = ServerString

        Try
            If SQLCon.State = ConnectionState.Closed Then
                SQLCon.Open()
            Else
                SQLCon.Close()
            End If
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        Dim Solo_Stock As String
        Solo_Stock = "S"

        da = New MySqlDataAdapter("SELECT * FROM database where stato =  '" & Solo_Stock & "' ", SQLCon)
        Dim ds As New DataTable
        da.Fill(ds)
        DatatableToExcel(ds)
        SQLCon.Close()

    End Sub


questa è la funzione

    Private Sub DatatableToExcel(ByVal dtTemp As DataTable)
        Dim _excel As New Microsoft.Office.Interop.Excel.Application
        Dim wBook As Microsoft.Office.Interop.Excel.Workbook
        Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet

        wBook = _excel.Workbooks.Add()
        wSheet = wBook.ActiveSheet()

        Dim dt As System.Data.DataTable = dtTemp
        Dim dc As System.Data.DataColumn
        Dim dr As System.Data.DataRow
        Dim colIndex As Integer = 0
        Dim rowIndex As Integer = 0

        For Each dc In dt.Columns
            colIndex = colIndex + 1
            _excel.Cells(1, colIndex) = dc.ColumnName
        Next

        For Each dr In dt.Rows
            rowIndex = rowIndex + 1
            colIndex = 0
            For Each dc In dt.Columns
                colIndex = colIndex + 1
                _excel.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)
            Next
        Next

        wSheet.Columns.AutoFit()
        Dim strFileName As String = "~/miofile.xlsx"
        If System.IO.File.Exists(strFileName) Then
            System.IO.File.Delete(strFileName)
        End If

        wBook.SaveAs(strFileName)
        wBook.Close()
        _excel.Quit()

    End Sub


chiaramente ho impostato
 Imports Excel = Microsoft.Office.Interop.Excel 


ma mi da un errore alla fine dell'elaborazione e precisamente quando deve scrivere il file sul disco sulla riga 309 che vedete mensionata di seguito:

Errore server nell'applicazione '/'.
Impossibile accedere al file "C:\Users\nando\Documents\~\C6F1A000". I motivi possibili sono:

• Il nome o il percorso del file non esiste.
• Il file è utilizzato da un altro programma.
• Il nome della cartella di lavoro che si sta tentando di salvare corrisponde a quello di una cartella di lavoro attualmente aperta.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere la traccia dello stack.

Dettagli eccezione: System.Runtime.InteropServices.COMException: Impossibile accedere al file "C:\Users\nando\Documents\~\C6F1A000". I motivi possibili sono:

• Il nome o il percorso del file non esiste.
• Il file è utilizzato da un altro programma.
• Il nome della cartella di lavoro che si sta tentando di salvare corrisponde a quello di una cartella di lavoro attualmente aperta.

Errore nel codice sorgente:


Riga 307:        End If
Riga 308:
Riga 309:        wBook.SaveAs(strFileName)
Riga 310:        wBook.Close()
Riga 311:        _excel.Quit()


è da considerare che comunque non mi ha scritto nulla sul disco.
Inoltre faccio presente che io ho necessità che una volta che creo il file all'utente Client venga proposto di aprire il file excel o salvarlo.

attendo un prezioso aiuto grazie. e saluti

Nando

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.