mercoledì 29 settembre 2010

Net 4 Esportare un file Excel 2010 in PDF tramite VB.Net e C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_esportare-un-file-di-excel-2010-in-pdf-t_961.aspx


Introduzione
In questo articolo, vedremo come da una windows application, possiamo convertire un file Excel 2010 in formato PDF, tramite il componente aggiuntivo scaricabile gratuitamente dal seguente sito http://www.microsoft.com/downloads/details.aspx?familyid=4D951911-3E7E-4AE6-B059-A2E79ED87041&displaylang=en .
Si crea un nuovo progetto di tipo Windows Application, nella form, aggiungiamo un controllo di tipo button, che avrà il nome di BtnEsporta e la proprietà text impostata con il valore “Converti”.
Facciamo doppio click sul pulsante, in questo modo si passa in visualizzazione codice, nell’evento click del pulsante.
Tramite il menu “Progetto”, selezioniamo la voce “Aggiungi riferimento…” nella finestra che viene aperta (figura 1) selezioniamo la pagina “Com” e dalle voci che ci vengono riportate selezioniamo quella relativa a Microsoft Excel 14, come riportato in figura 1.


Figura 1


In questo modo abbiamo aggiunto un riferimento alla libreria di Excel 2010.


Stesura di codice
Terminata la parte d’impostazione del progetto, scriviamo il codice per convertire il file excel in Pdf. Si ricorda che si deve aver già creato un file Excel 2010.
Si inseriscono gli spazi di nomi per la gestione dei file Excel, qui di seguito si riporta un esempio di codice, ricordiamo che si fa uso dell’alias, in modo che Application non va in conflitto con la classe Application di form.


VB.Net


Imports Microsoft.Office.Interop.Excel


Imports ExcelAPP = Microsoft.Office.Interop.Excel



C#


using Microsoft.Office.Interop.Excel;


using ExcelAPP = Microsoft.Office.Interop.Excel;



Utilizzeremo un oggetto di tipo application di Excel, di questo oggetto, tramite il metodo open si aprirà il documento creato, e tramite il metodo “ExportAsFixedFormat” effettueremo la conversione in PDF.
Qui di seguito si riporta il codice completo di tali operazioni.


VB.Net


Dim AppExcel As New ExcelAPP.Application()



'Creo i percorsi e nomi dei file Excel e pdf


Dim NomeFileExcel As String = "C:\FileExcel.xlsx"



Dim NomeFilePDF As String = "C:\varie\FilePDF.pdf"



Try


'apro il file excel, in modo che poi lo posso convertire


AppExcel.Workbooks.Open(NomeFileExcel)




'se non è null e quindi un oggetto valorizzato, effetto l'esportazione in formato PDF


If Not AppExcel Is Nothing Then


'parametri, formato e nome del file


AppExcel.Workbooks(1).ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, NomeFilePDF)



End If



Catch ex As Exception


'errore nella fase di esportazione


MessageBox.Show("Si è verificato un errore: " + ex.Message)


Finally



'chiudo l'applicazione Excel e rilascio le risorse


If Not AppExcel Is Nothing Then



AppExcel.Quit()


AppExcel = Nothing


End If




'libero la memoria


GC.Collect()


GC.WaitForPendingFinalizers()



GC.Collect()



GC.WaitForPendingFinalizers()



End Try




C#


ExcelAPP.Application AppExcel = new ExcelAPP.Application();


//Creo i percorsi e nomi dei file Excel e pdf


string NomeFileExcel = @"C:\FileExcel.xlsx";



string NomeFilePDF = @"C:\varie\FilePDF.pdf";


try


{


//apro il file excel, in modo che poi lo posso convertire


AppExcel.Workbooks.Open(NomeFileExcel);



//se non è null e quindi un oggetto valorizzato, effetto l'esportazione in formato PDF


if (AppExcel != null)


{


//parametri, formato e nome del file


AppExcel.Workbooks[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, NomeFilePDF);


}




}


catch (Exception ex)


{



//errore nella fase di esportazione


MessageBox.Show("Si è verificato un errore: " + ex.Message);


}


finally


{


//chiudo l'applicazione Excel e rilascio le risorse


if (AppExcel != null)


{



AppExcel.Quit();


AppExcel = null;



}



//libero la memoria


GC.Collect();


GC.WaitForPendingFinalizers();



GC.Collect();



GC.WaitForPendingFinalizers();



}




Analizzando in dettaglio il codice appena visto, si è creato un oggetto di tipo Application di Excel, due variabili che contengono il percorso e nome del file excel da convertire e quello pdf (che non deve esistere) tramite il metodo open, si apre il file excel e tramite il metdo ExportAsFiexFormat di Workbooks si effettua la stampa.
Nella parte finally, verifichiamo che l’oggetto è in stanziato e poi si procede alla sua chiusura e si libera la memoria.



Conclusioni
L’articolo ha voluto fornire una tecnica di come convertire un file Excel in PDF, il tutto tramite la tecnologia .Net 4 ed il nuovo pacchetto Microsoft Office 2010, le potenzialità offerte dalla nuova tecnologia e dal nuovo Office offrono interessanti spunti per creare applicazioni più complessi e più professionali con una facilità di codice.
In questo caso, abbiamo utilizzato gli oggetti messi a disposizione dalla libreria di Excel.

Nessun commento: