| Programmare EXCEL |
| |
| Nel seguente documento si analizzerà il codice necessario per creare un foglio di Excel e formattarlo in maniera adeguata. |
| |
| Dopo aver creato una nuova soluzione in Visual Studio .Net, cliccare su "Proprietà di ..." dal menu "Progetto" |
| |
| Ora aprire il tab "Riferimenti", e cliccare sul bottone "Aggiungi..." |
| |
 |
Nel menu che appare, selezionare il tab "COM" e scorrere l'elenco sino a trovare la voce "Microsoft Excel 11.0 Object Library", come si vede in figura. |
| |
| Innanzi tutto importare quanto segue, questo servirà ad usufruire delle classi di Excel nel nostro progetto. |
| |
| Imports Excel |
| |
| Apriamo la nostra applicazione Excel. |
| |
Dim ExcelApp As Application ExcelApp = New Application |
| |
| Aggiungiamo
un workbook e un foglio di calcolo alla nostra applicazione |
| |
| ExcelApp.SheetsInNewWorkbook = 1 |
| |
| Una volta fatto questo possiamo passare alla formattazione del nostro foglio di Excel |
| Per questo esempio formatteremo il foglio in modo che abbia la prima cella delle prime 10 colonne di colore rosso con testo bianco grassetto.Da notare il fatto che le celle in Excel, al contrario di quello che accade generalmente in VB.Net, partono dalla numero 1 e non dalla 0. |
| |
For i = 1 To 10 With ExcelApp.ActiveSheet.Cells(1,i) .Font.Bold = True .Interior.ColorIndex = 3 .Font.ColorIndex = 2 End With Next i
|
| |
| Formattiamo
anche ogni singola colonna della nostra tabella in modo che siano pronte per l’immissione
corretta dei dati. Questa operazione è molto importante in quanto Excel in
automatico considera le celle come generiche e attribuisce il tipo a seconda del dato che viene immesso. Questo potrebbe causare
dei problemi nel momento in cui volessi scrivere all’interno di una cella il
valore “0721”in quanto Excel lo convertirebbe in numerico e visualizzerebbe 721. |
| |
With ExcelApp.ActiveSheet .Cells(2,1).entirecolumn.numberformat="@" 'testo .Cells(2,1).entirecolumn.numberformat="#,###" 'generale per numeri .Cells(2,1).entirecolumn.numberformat="gg-mmm-aaaa" 'date End With |
| |
| A questo punto possiamo inserire il testo all’interno del nostro foglio elettronico. |
| |
With ExcelApp.ActiveSheet .Cells("A2").Value = "Prova" .Cells("B2").Value = 174,78 .Cells("C2").Value = "17/04/1978" End With |
| Possiamo
chiamare la funzione autofit() della pagina per far si che le dimensioni delle celle siamo adatte al contenuto in modo che non si sprechi dello spazio con colonne troppo larghe e che non ci
siamo testi mozzati della scarsa ampiezza. |
| |
| ExcelApp.ActiveSheet.Columns.AutoFit() |
| |
| Possiamo bloccare le celle e inserire una password per impedire che vengano modificati i valori al loro interno. |
| |
'Imposta tutte le celle come sbloccate ExcelApp.ActiveSheet.Cells.Locked = False
'Indico le colonne che dovranno essere bloccate
ExcelApp.ActiveSheet.Cells(1, 1).EntireColumn.Locked = True 'Attivo la protezione del foglio ExcelApp.ActiveSheet.Protect("teo", , True) |
| |
| Imposto la prima riga in modo che non faccia
parte del normale scorrimento della pagina. |
| |
'Non fa scorrere la riga del titolo ExcelApp.ActiveWindow.SplitColumn = 0 ExcelApp.ActiveWindow.SplitRow = 1 ExcelApp.ActiveWindow.FreezePanes = True |
| |
| Rendo
visibile il foglio di lavoro |
| |
| ExcelApp.Visible = True |
| |
| Salvo il foglio di lavoro nel percorso "C:\" |
| |
| ExcelApp.ActiveWorkbook.SaveAs("C:\", XlFileFormat.xlWorkbookNormal, "", "", False, False) |
| |
| Se hai bisogno di maggiori informazioni o hai trovato delle inesattezze segnalacele |