[VS2005 VB.NET] Conversione: Campo Access ---> Cella Excel

venerdì 17 ottobre 2008 - 11.21

gdlcore Profilo | Junior Member

Ciao a tutti ho questo problema:
- Ho un file Excel che è un modello di Stampa, un preventivo..
- Ho un file db Access contenente una tabella "Anagrafica" con i vari campi già compilati dal mio applicativo in precedenza.
Ora l'obiettivo è di andare a compilare le celle del foglio Excel con i dati che sono presenti nei campi della tabella "Anagrafica".
Ci sono delle celle specifiche dove andare a inserire quei dati essendo un preventivo.
Come si deve procedere?
Grazie a tutti..

alexmed Profilo | Guru

Ciao
Qui dovresti trovare le risposte.

Per aprire un xls esistente alposto di
xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
dovresti usare
xlApp.Workbooks.Open("C:\myFile.xls")

Ti consiglio di considerare 2 aspetti
Se il programma è a tuo uso esclusivo e sul tuo PC allora nessun problema, ma se lo devono utilizzare anche altri e non sul tuo PC allora credo che il discorso si complichi un pò:

Per prima cosa devi essere certo che su questi PC sia installato Excel e secondo devi prevedere che con qualsiasi versione funzioni tutto.
Questo perchè ho visto che con la versione 8 e la versione 12 questa riga cambia

Microsoft.Office.Interop.Excel.Application con la 12
Excel.Application con la versione 8

Se il tuo obiettivo e quello di stampare il preventivo secondo me non ti conviene complicarti la vita passando da Excel ma impostarti un PrintDocument ad hoc e mandarlo in stampa.
Ciao

gdlcore Profilo | Junior Member

Quindi non ho capito..non si riesce a fare?Come si fa ad impostare un print document?
Dimmi tu se questa è la soluzione migliore..
Siccome vorrei tenere traccia di quello che stampo magari si potrebbe esportare in pdf evitando il file excel? Si può?

alexmed Profilo | Guru

Ciao
Per fare si può fare! Bisogna "solo" impostare una procedura per verificare prima se è installato Excel dopodichè intercettare quale versione è installata sul PC e quindi impostare il tutto.
Onestamente, non saprei come fare!
Qui puoi trovare delle info: http://msdn.microsoft.com/it-it/library/d7f63219.aspx

Per quanto riguarda PrintDocument, ti passo un piccolo esempio che ti spiega il funzionamento.
Mentre per il discorso PDF è molto più semplice in quanto una volta impostato il documento da stampare basta appoggiarsi ad un drive di stampa tipo PDF995 (http://www.pdf995.com/download.html) gratuito.

Tra l'altro per PrintDocument su intrnet si trovano tantissimi esempi e spiegazioni.

Ciao

alexmed Profilo | Guru

Dunque
Questo l'ho scaricato da internet bello che pronto.
C'è anche un file di Word come guida.

Tempo di impostarlo e ti passo un'altro progettino.

Ciao

gdlcore Profilo | Junior Member

Si grazie per il print document passami pure l'esempio, per il pdf995 quali devo scaricare tra quei file?
E poi come bisogna procedere?

Vediamo se riusciamo a fare andare questa Stampa..

alexmed Profilo | Guru

Questo è l'esempio

I file da scaricare sono:
1. Pdf995 Printer Driver - Version 9.0
2. Free Converter • Version 1.1

Una volta che li hai installati nella cartella Stampanti avrai anche "PDF995"
Ti basta selezionare questa stampante al posto della tua stampante.
Ti verrà fuori una maschera di dialogo per il salvataggio del file.

Questo drive ti può essere utile anche con altre applicazioni tipo Word o Excel o tanto per capirci Blocco Note, ovvero tutte quelle applicazioni che non ti consento di salvare un file in PDF.

In pratica tu gli dici di stampare ma in realtà ti crea un documento PDF

Adesso esco
ti rispondo nel pomeriggio
Ciao

gdlcore Profilo | Junior Member

Ok grazie..ma se voglio fare un tasto nella mia applicazione che trasformi il file in pdf invece di stamparlo?Cioè quando un utente clicca su quel tasto "Esporta in PDF" decide dove salvarlo..
Come si può fare? Rispondi pure nel pomeriggio, poi io ti rispondo domani mattina, perchè lavoro solo la mattina, grazie mille..

alexmed Profilo | Guru

Dunque
Nel frattempo ho trvato un'altro programmino che fà al caso nostro
E' più carino perchè non ti apre gli Sponsor Page ed è anche in italiano!!!
Lo puoi trovare qui: http://www.dopdf.com/

Aggiungi un Button che chiamerai btnEXPORT e gli metti queste due righe di codice

Private Sub btnEXPORT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEXPORT.Click

'Ciclo le stampanti installate per verificare se c'è PDF995 oppure "doPDF v6"
For i As Integer = 0 To PrinterSettings.InstalledPrinters.Count - 1
'Se è installata la imposto come stampante
If PrinterSettings.InstalledPrinters.Item(i).ToString = "PDF995" Then 'Oppure "doPDF v6"
Me.PrintDocument1.PrinterSettings.PrinterName = PrinterSettings.InstalledPrinters.Item(i).ToString
End If
Next

'Controllo di aver impostato la stampante
If Not Me.PrintDocument1.PrinterSettings.PrinterName = "PDF995" Then 'Oppure "doPDF v6"
'Se non è installata allora mostro un messaggio di scaricare il driver di stampa
MsgBox("Per la conversione in PDF è necessario scaricare ed installare i driver dal seguente indirizzo:" & vbCrLf & "http://www.pdf995.com/download.html") 'Oppure "http://www.dopdf.com/")
Else
'Se è installata mando in stampa il documento: si aprirà direttamente la finestra di dialogo Salva con nome
Me.PrintDocument1.DocumentName = "Preventivo del " & DateTime.Today()
Me.PrintDocument1.Print()
End If

End Sub

Ciao

gdlcore Profilo | Junior Member

Funziona..il problema è che per ora il mio Document è una Pagina Bianca..possibile che non ci sia un metodo per compilare il file excel "Preventivo" e poi piazzarlo nel Print Document?
Io ero riuscito a fare in modo di scrivere qualche riga nel file excel, ero riuscito a mettere l'anagrafica però non dal DB ma direttamente dalle textBox del programma..
Ora provo a mandarti qualcosa..
Però logicamente la cosa più comoda era quella di recuperarle dal DB secondo me..
Ora cerco il codice e te lo posto così gli dai un occhiata!

alexmed Profilo | Guru

Ok

gdlcore Profilo | Junior Member

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Questo piu o meno era una prova iniziale..poi mi sono perso e ho lasciato perdere..però ero riuscito a piazzare l'anagrafica al suo posto..tu cosa ne pensi di questo codice?

alexmed Profilo | Guru

Ciao
Hai letto il msg di posta che ti ho mandato?

alexmed Profilo | Guru

Ciao
Prova questo

è impostato con "doPDF"

Ciao

gdlcore Profilo | Junior Member

Si ho letto il messaggio ma come faccio a mandarti il file in privato?Non riesco a fare "Rispondi" al messaggio privato che mi hai mandato..dove mando?Aspetto notizie, grazie mille dell'aiuto!!

alexmed Profilo | Guru

Ciao
il file mandalo ad: alexmed@tiscali.it
Dai un'occhiata anche al post precedente. Ti ho allegato (xlApp.zip) un progetto che potrebbe risolvere i problemi.
Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5