Forum >> Principianti >> xlsx writer, inserimento dei record di sqlite3 in una tabella exel

Pagina: 1

ciao a tutti qualcuno riesce ad aiutarmi :question: ? devo popolare una tabella con i record del database sqlite3,sono principiante quindi scusate per il mio codice :
def interazioneexeltest():
    conn = sqlite3.connect("databaseG.db")

    c = conn.cursor()

    
    
    c.execute("""SELECT nome,cognome,ragione_sociale,descrizione,data_in,data_out FROM ordini
                       INNER JOIN clienti ON clienti.id = id_cliente 
                       INNER JOIN lavorazioni ON lavorazioni.id = id_lavorazione
                       """)
    
    records = c.fetchall()
    
    conn.commit()

    conn.close()

    cartella = Workbook('output2.xlsx') # creo il file
    foglio = cartella.add_worksheet() # creo il primo foglio        
    
   
        
     
    for  nome, cognome, ragione_sociale, descrizione, data_in, data_out in records:
            foglio.write_row('B2', 'nome'0)
            foglio.write_row('B3', 'cognome'1)
            foglio.write_row('B4', 'ragione_sociale'2)
            foglio.write_row('B5', 'descrizione'3)
            foglio.write_row('B6', 'data_in'4)
            foglio.write_row('B7', 'data_out'5)
            

    
            
    foglio.set_column('B:H', 12) # definisco la larghezza dei campi
    foglio.add_table('B1:H7', {'autofilter': 0}) # definisco la tabella
    
   
     
        

  
    cartella.close() # chiudo il file
    
    
    os.startfile("output2.xlsx", "open")


Ciao caro, sono un po' tardo, ma qual'è la domanda?

Perché se la domanda fosse: "Provate ad usare il mio codice, guardate gli effetti e correggete i difetti", beh non sarebbe la strada corretta. Prova a capire se c'è qualcosa che non va nel tuo codice, individua la parte incriminata e concentrati su quella coinvolgendo a quel punto il forum per aiutarti. Postare il tuo codice senza contestualizzare un problema è, a mio avviso ovviamente, del tutto controproducente per il tuo cammino di apprendimento.

Inoltre, questo vale sempre come regola generale, indica che versione stai usando di Python, su che piattaforma, insomma dai più informazioni possibili.

Invece un bel :ok: per te per aver formattato in maniera corretta il codice, bravo.

Cya
Ciao e grazie per la risposta, allora sto utilizzando python 3.7 su Windows 10, vorrei inserire dei records in una tabella exel creandola con il modulo xlsx writer, sono riuscito a trovare un ciclo for, su internet, che mi scrive i record nel documento exel ma vorrei inserirli in una tabella. Quindi sto studiando ma questo ciclo for nn lo capisco....cioè a livello didattico riesco a capirlo ma questo che ho trovato è diverso)inoltre ho quasi finito il mio primo programma(nella vita faccio tutt altro) e questo è il mio penultimo problema da risolvere poi mi dedicherò di nuovo allo studio ma ora sono impaziente di finirlo aiutatemi :py: :angel: :ok:
Alla fine se siamo qui è per aiutare. ;)

Ma forse non sono stato chiaro, ti chiedo scusa, provo a spiegarmi meglio ed in maniera sintetica.

Cerca di isolare il problema e fare la domanda specifica solo su quella parte, postando anche l'eventuale errore che ottieni.

Partiamo da qui e vedrai che il suggerimento sarà utile per te e non risulterà frustrante per chi ti vuole aiutare.

Cya
Allora come da titolo devo inserire i record di una query sqlite3 in una tabella di exel(creando lo stesso documento exel con il modulo xlsx-writer) . Sono riuscito con questo codice a inserire i record in exel :
def interazioniexel():
    conn = sqlite3.connect("databaseG.db")

    c = conn.cursor()

    
    
    mysel=c.execute("""SELECT ordini.oid,nome,cognome,ragione_sociale,descrizione,data_out,prezzo FROM ordini
                       INNER JOIN lavorazioni ON lavorazioni.id = id_lavorazione
                       INNER JOIN clienti ON clienti.id = id_cliente 
                       WHERE clienti.oid = """  + ldel.get())

    
    workbook = Workbook('output2.xlsx')
    worksheet = workbook.add_worksheet()
    # questo codice funziona ma vorrei capirne il funzionamento e aggiungere una tabella con i record
    for i, row in enumerate(mysel):
        for j, value in enumerate(row):
            worksheet.write(i, j, rowj)
    workbook.close()
    os.startfile("output2.xlsx", "open")





ho cercato sulla documentazione xlsx writer ma ho trovato solamente come si creano le tabelle e non saprei come inserire anche i records.




P.S: il codice del ciclo 'for' non l'ho scritto io e non riesco a capirlo anche se sto studiando il ciclo for, quindi sarebbe bello se qualcuno riuscisse a spiegarmi il codice che ho copiato e magari a migliorarlo per fare andare i record nella tabella direttamente . Grazie e spero di essere stato chiaro
P.S: il codice del ciclo 'for' non l'ho scritto io e non riesco a capirlo anche se sto studiando il ciclo for, quindi sarebbe bello se qualcuno riuscisse a spiegarmi il codice che ho copiato e magari a migliorarlo per fare andare i record nella tabella direttamente . Grazie e spero di essere stato chiaro
A mio modesto parere devi fare un passo indietro, prenderti un buon testo (più di quello che utilizzi ora) e studiarti con attenzione i fondamenti del linguaggio. Trovare un codice online, chiedere a qualcuno di spiegartelo, beh non è un approccio corretto, per nulla.

Parti da qui, vedrai che troverai tanti spunti interessanti.

Cya



Pagina: 1



Esegui il login per scrivere una risposta.