Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [VB.NET] Scrivere dati in file Excel

    Salve a tutti. Da qualche giorno sono alle prese con un problema che mi sta facendo perdere un sacco di tempo ... pensavo fosse un problemino di poco conto ed invece, come spesso capita, ci sto impazzendo.
    Vengo al dunque .... Sto creando un progetto per l'elaborazione di dati provenienti da excel e successivamente elaborati ... e fin qui tutto ok. Come output finale devo mettere questi dati in un file di excel già predisposto per poi essere stampato dall'utilizzatore finale. Il problema è che gli utilizzatori finali non sono molto ferrati e quindi, invece di mettere l'eseguibile ed il file di excel da stampare nella stessa cartella, vorrei creare quel file di excel direttamente da codice VB così da mettere un solo file (l'eseguibile) e null'altro. Esiste un modo veloce ..... una funzione ... oppure un software che permette di "importare/caricare" tutte le caratteristiche del file di excel da stampare (larghezza ed altezza celle, bordi, font, immagini, intestazioni e quant'altro) in modo da poterlo creare direttamente da codice VB ? Spero di essere stato sufficientemente chiaro e mi scuso della probabile banalità della domanda. Ringrazio tutti quanti vorranno aiutarmi.
    Andrea.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    excel è provvisto di vb, con cui scrivere "macro", in realtà una macro può essere un programma complesso, in grado di leggere anche info da db,

    ho sempre creato dei file xlsm con all'interno lo script (calcolo/preparazione dati/distribuzione dati) da eseguire

    i dati sono distribuiti copiandoli in "templates" formattati di tutto punto con all'interno la macro agganciata ad un bottone per la stampa

    quindi che necessità hai di usare software esterno a excel ?

    visto che gli utenti sono poco pratici di excel, puoi anche "stampare" il template, opportunamente compilato in formato pdf e spedire loro il pdf direttamente ....

  3. #3
    Perdonami Marino ma non so se sono io a non aver capito oppure il contrario. Il software che ho creato è in VB 2017. I dati importati nelle matrici li devo mettere nelle celle di questo file excel già predisposto ma vorrei che fossi io a creare quel file excel da codice VB, copiargli i dati e stampare il tutto. In pratica vorrei che quel file excel non esistesse per fare in modo che gli utenti non lo vedano neppure. Lo so benissimo cosa sono ed a cosa servono le macro ma a me serve ricreare quel foglio excel da codice VB (tramite Visual Studio). Il software esterno ad excel mi serve per fare una cosa già "confezionata", se è per questo già adesso utilizzano un foglio di excel con delle macro (che non ho fatto io) ma spesso fanno dei casini e cancellano dei files che non dovrebbero essere cancellati ... ecco il perchè volevo evitare ulteriori problemi di questo tipo. Se gli presento una form con pulsanti e Progress bar credo sia meglio. Grazie per la risposta. Ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    credo che tu ti sia spiegato bene ed io abbia capito altrettanto bene

    se,
    ecco il perché volevo evitare ulteriori problemi di questo tipo
    lasciami affermare che è software sviluppato male

    se vuoi inviare loro una cosa già "confezionata", ti conviene usare un "template" excel che hai preparato per la miglior distribuzione/visione dei dati riempiendo le celle con il software che preferisci e al termine salvandolo come pdf

    puoi quindi distribuire il pdf personale a ciascun destinatario
    Ultima modifica di marino51; 03-05-2018 a 17:46 Motivo: ortografia

  5. #5
    Beh diciamo che mi sono messo in testa di fare in questo modo e così desidero fare. Non ci dovesse essere nulla per semplificarmi il lavoro mi metterò di buona volontà a controllare ogni cosa di quel file ed a salvarla, pazienza. Grazie ancora. Ciao.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Fai un esempio pratico.

    Per semplificare, ti hai 3 dati numerici

    500 100 200

    inseriti con il tuo programma.

    Con un pulsante, crei un file Excel, inserisci i valori in 3 celle e stampi il foglio.

    Adesso, chi ti vieta di prendere i 3 valori e stamparli direttamente in un report pdf ottenendo lo steso risultato senza passare da Excel (che, solo per questo, deve essere installato nel sistema)?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Ottima soluzione, sarebbe ottimale non passare attraverso Excel ..... se solo sapessi come si fa ......
    Allora addirittura, visto che quei dai importati nella matrice li scarico dal sito intranet aziendale, sarebbe il massimo poterli scaricare direttamente dal sito, magari con un pulsante, e poi elaborarli e stamparli. Sarebbe il TOP. Ma non ne ho la più pallida idea ... ho sempre e solo programmato (tanti anni fa ......) con i vecchi Visual Basic e non ho mai avuto a che fare con le reti .... purtroppo. Oregon se hai tempo e voglia di illustrarmi come potrei risolvere anche solo il fatto di bypassare Excel te ne sarei molto grato. Grazie. Ciao.

  8. #8
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    ti potrebbe servire per altri impieghi, questo è un esempio di codice per creare un file excel
    codice:
            Dim oExcel As Object
            Dim oBook As Object
            Dim oSheet As Object
            Dim nomefile As String
    
            oExcel = CreateObject("Excel.Application")
            oBook = oExcel.Workbooks.Add
            oSheet = oBook.Worksheets(1)
            oSheet.Range("A1").Value = A1_txt.Text
            oSheet.Range("B1").Value = B1_txt.Text
    
            oSheet.Range("A2").Value = A2_txt.Text
            oSheet.Range("B2").Value = B2_txt.Text
    
            nomefile = nome_txt.Text
            Try
                oBook.SaveAs("F:\Download\" + nomefile + ".xlsx") ' percorso da modificare
                oExcel.Quit()
                MsgBox("File Excel creato con successo", MsgBoxStyle.Information, "Notifica")
            Catch
                oBook.Close(False)
                oExcel.Quit()
                MsgBox("Percorso non trovato", MsgBoxStyle.Information, "Notifica")
            End Try

  9. #9
    Ti ringrazio patei ma questo lo so fare, quello che vorrei imparare a fare è creare un pdf senza passare per excel. Mi sto un pò sbattendo a cercare in rete .... ho trovato una libreria itextsharp, adesso provo a venirne fuori. Grazie comunque. Ciao.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    questo invece un pezzetto di codice per collegare facilmente lo script al database,
    codice:
    Sub import_elements_orcl()
        Set tdb = CreateObject("ADODB.Connection")
        tdb.connectionstring = "file name=" & UdlFile & "udlDB.udl;"
        tdb.Open
        sqlquery = "......."
        sqlquery = "Select * from stab021 where tab021001='A1' and tab021002=" & sqlquery
        Set rsuserlist = tdb.Execute(sqlquery)
    ......
    il file, che ho chiamato "udlDB.udl" nell'esempio,
    lo generi creando un file txt,
    rinominandolo in udl,
    cliccandolo due volte ti si apre la "connessione" dove inserire i parametri e con tanto di verifica

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.