Introduzione a VSTO per Excel (Video 3 di 6)

Try Proseoai — it's free
AI SEO Assistant
SEO Link Building
SEO Writing

Introduzione a VSTO per Excel (Video 3 di 6)

Indice

  • Introduzione
  • Cos'è VSTO
  • Ambiente di sviluppo
  • Modellazione degli oggetti di Excel
    • Oggetto Applicazione
    • Oggetto Cartella di lavoro
    • Oggetto Foglio di lavoro
    • Oggetto Intervallo
  • Assemblee non gestite e gestite
  • Utilizzo delle diverse assembly
  • Esempi di codice
    • Oggetto Applicazione
    • Impostare e cancellare la barra di stato
    • Calcolare il foglio di lavoro
    • Utilizzo delle funzioni di Excel
    • Oggetto Cartella di lavoro
    • Aggiungere una nuova cartella di lavoro
    • Aprire una cartella di lavoro esistente
    • Salvare e chiudere una cartella di lavoro
    • Ciclare tra le cartelle di lavoro aperte
    • Oggetto Foglio di lavoro
    • Aggiungere un nuovo foglio di lavoro
    • Ottenere un riferimento a un foglio di lavoro
    • Rinominare, riordinare ed eliminare un foglio di lavoro
    • Ciclare tra i fogli di lavoro
    • Oggetto Intervallo
    • Ottenere un riferimento all'intervallo attivo
    • Ottenere un riferimento all'intervallo tramite indirizzo
    • Scrivere e leggere valori nelle celle
    • Formattare gli intervalli
  • Uso degli oggetti con un AddIn di Excel
  • Conclusioni

📜 Introduzione

Benvenuti a questo video di Excel Dev Studio! In questo video, vi presenteremo il mondo di VSTO (Visual Studio Tools for Office). Scoprirete come sviluppare soluzioni per estendere le funzionalità di Excel. Se non avete ancora visto i video precedenti, vi consigliamo di farlo per avere una panoramica completa di VSTO e delle sue potenzialità.

🤔 Cos'è VSTO

Prima di addentrarci nei dettagli, è importante capire cos'è VSTO. VSTO sta per Visual Studio Tools for Office ed è un set di strumenti sviluppati da Microsoft che permettono di creare soluzioni personalizzate per Excel utilizzando il framework di sviluppo di Visual Studio. Queste soluzioni permettono di estendere le funzionalità di Excel e automatizzare operazioni complesse.

🔧 Ambiente di sviluppo

Prima di iniziare lo sviluppo con VSTO, è necessario configurare l'ambiente di sviluppo. Per poter utilizzare VSTO, è necessario avere installato Visual Studio e il pacchetto di sviluppo per Office. Una volta effettuate queste installazioni, sarà possibile iniziare a creare soluzioni per Excel utilizzando VSTO.

📚 Modellazione degli oggetti di Excel

Per poter utilizzare VSTO per estendere le funzionalità di Excel, è fondamentale comprendere la struttura del modello degli oggetti di Excel. Gli oggetti principali che andremo ad utilizzare sono:

Oggetto Applicazione

L'oggetto Applicazione rappresenta l'applicazione di Excel stessa. Attraverso questo oggetto, si possono ottenere informazioni sull'applicazione, sulle azioni applicate all'istanza corrente e sull'utilizzo degli oggetti aperti all'interno dell'applicazione.

Oggetto Cartella di lavoro

L'oggetto Cartella di lavoro rappresenta una singola cartella di lavoro all'interno dell'applicazione di Excel. Questo oggetto fa parte della collezione di Cartelle di lavoro.

Oggetto Foglio di lavoro

L'oggetto Foglio di lavoro rappresenta un singolo foglio di lavoro all'interno di una cartella di lavoro. Anche in questo caso, l'oggetto Foglio di lavoro fa parte di una collezione di Fogli di lavoro.

Oggetto Intervallo

L'oggetto Intervallo è l'oggetto che utilizzeremo maggiormente all'interno di un'applicazione Excel. Questo oggetto rappresenta una cella, una riga, una colonna o una selezione di celle. Grazie all'oggetto Intervallo, potremo manipolare e gestire i dati all'interno delle celle.

📦 Assemblee non gestite e gestite

Un altro aspetto importante da comprendere è la differenza tra le assemblee non gestite e le assemblee gestite. Le assemblee non gestite sono utilizzate per comunicare con il modello degli oggetti di Excel mediante l'utilizzo di COM interop. Le assemblee gestite, invece, implementano le proprietà, i metodi e gli eventi definiti dalle assemblee non gestite e permettono di sviluppare soluzioni personalizzate utilizzando VSTO.

🤝 Utilizzo delle diverse assembly

Per utilizzare le diverse assemblee nel nostro progetto VSTO, è necessario fare il riferimento alle assembly nel nostro progetto. Ad esempio, se vogliamo utilizzare l'oggetto Applicazione di Excel, dobbiamo fare il riferimento all'assembly Microsoft.Office.Interop.Excel. Allo stesso modo, se vogliamo utilizzare gli oggetti VSTO di Excel, dobbiamo fare il riferimento all'assembly Microsoft.Office.Tools.Excel. Fortunatamente, Visual Studio aggiunge automaticamente i riferimenti alle assembly necessarie quando creiamo una soluzione VSTO per Excel.

🔧 Esempi di codice

Ora che abbiamo una buona comprensione del modello degli oggetti di Excel e delle assembly da utilizzare, possiamo passare ad alcuni esempi di codice che mostrano come utilizzare gli oggetti di Excel con VSTO.

Oggetto Applicazione

Impostare e cancellare la barra di stato

Per impostare un messaggio sulla barra di stato dell'applicazione, possiamo utilizzare la proprietà StatusBar dell'oggetto Applicazione. Ad esempio, se vogliamo impostare il messaggio "Elaborazione in corso..." sulla barra di stato, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.StatusBar = "Elaborazione in corso...";

Per cancellare il messaggio dalla barra di stato, possiamo semplicemente impostare la proprietà StatusBar su una stringa vuota:

Globals.ThisAddIn.Application.StatusBar = "";

Calcolare il foglio di lavoro

Per calcolare il foglio di lavoro, possiamo utilizzare il metodo Calculate dell'oggetto Foglio di lavoro. Ad esempio, se vogliamo calcolare le formule del foglio di lavoro attivo, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveSheet.Calculate();

In alternativa, se vogliamo ricalcolare tutte le cartelle di lavoro aperte, possiamo utilizzare il metodo CalculateFull dell'oggetto Applicazione:

Globals.ThisAddIn.Application.CalculateFull();

Utilizzo delle funzioni di Excel

Per utilizzare le funzioni di Excel all'interno del nostro codice, possiamo utilizzare la proprietà WorksheetFunction dell'oggetto Applicazione. Ad esempio, se vogliamo utilizzare la funzione SOMMA per sommare due numeri, possiamo utilizzare il seguente codice:

double result = Globals.ThisAddIn.Application.WorksheetFunction.Sum(5, 10);

In questo esempio, stiamo utilizzando il metodo Sum dell'oggetto WorksheetFunction per sommare i numeri 5 e 10.

Oggetto Cartella di lavoro

Aggiungere una nuova cartella di lavoro

Per aggiungere una nuova cartella di lavoro, possiamo utilizzare il metodo Add della collezione di Cartelle di lavoro. Ad esempio, se vogliamo aggiungere una nuova cartella di lavoro vuota, possiamo utilizzare il seguente codice:

Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add();

Questo codice crea una nuova cartella di lavoro e la assegna a una variabile di tipo Workbook.

Aprire una cartella di lavoro esistente

Per aprire una cartella di lavoro esistente, possiamo utilizzare il metodo Open della collezione di Cartelle di lavoro. Ad esempio, se vogliamo aprire il file "Workbook1.xlsx", possiamo utilizzare il seguente codice:

Excel.Workbook existingWorkbook = Globals.ThisAddIn.Application.Workbooks.Open(@"C:\Path\To\Workbook1.xlsx");

In questo caso, dobbiamo specificare il percorso completo del file, compreso il nome del file con l'estensione.

Salvare e chiudere una cartella di lavoro

Per salvare una cartella di lavoro, possiamo utilizzare il metodo Save dell'oggetto Cartella di lavoro. Ad esempio, se vogliamo salvare la cartella di lavoro attiva, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveWorkbook.Save();

Per salvare una cartella di lavoro con un nuovo nome o in un percorso diverso, possiamo utilizzare il metodo SaveAs dell'oggetto Cartella di lavoro. Ad esempio, se vogliamo salvare la cartella di lavoro attiva con il nome "NuovoWorkbook.xlsx", possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveWorkbook.SaveAs(@"C:\Path\To\NuovoWorkbook.xlsx");

Per chiudere una cartella di lavoro, possiamo utilizzare il metodo Close dell'oggetto Cartella di lavoro. Ad esempio, se vogliamo chiudere la cartella di lavoro attiva, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveWorkbook.Close();

È importante notare che, quando chiudiamo una cartella di lavoro, dobbiamo assicurarci di salvare le modifiche apportate in precedenza.

Ciclare tra le cartelle di lavoro aperte

Per ciclare tra le cartelle di lavoro aperte, possiamo utilizzare un ciclo foreach sulla collezione di Cartelle di lavoro. Ad esempio, se vogliamo elencare i nomi di tutte le cartelle di lavoro aperte, possiamo utilizzare il seguente codice:

foreach (Excel.Workbook workbook in Globals.ThisAddIn.Application.Workbooks)
{
    Console.WriteLine(workbook.Name);
}

In questo esempio, stiamo stampando il nome di ogni cartella di lavoro sulla console.

Oggetto Foglio di lavoro

Aggiungere un nuovo foglio di lavoro

Per aggiungere un nuovo foglio di lavoro, possiamo utilizzare il metodo Add della collezione di Fogli di lavoro. Ad esempio, se vogliamo aggiungere un nuovo foglio di lavoro alla cartella di lavoro attiva, possiamo utilizzare il seguente codice:

Excel.Worksheet newWorksheet = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add();

Questo codice crea un nuovo foglio di lavoro e lo assegna a una variabile di tipo Worksheet.

Ottenere un riferimento a un foglio di lavoro

Per ottenere un riferimento a un foglio di lavoro esistente, possiamo utilizzare i metodi get_Item o get_ItemByName della collezione di Fogli di lavoro. Ad esempio, se vogliamo ottenere un riferimento al primo foglio di lavoro della cartella di lavoro attiva, possiamo utilizzare il seguente codice:

Excel.Worksheet firstWorksheet = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.get_Item(1);

In questo caso, stiamo ottenendo un riferimento al primo foglio di lavoro utilizzando l'indice 1. È importante notare che l'indice degli oggetti di Excel inizia da 1, non da 0.

Rinominare, riordinare ed eliminare un foglio di lavoro

Per rinominare un foglio di lavoro, possiamo utilizzare la proprietà Name dell'oggetto Foglio di lavoro. Ad esempio, se vogliamo rinominare il primo foglio di lavoro con il nome "NuovoFoglio", possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.get_Item(1).Name = "NuovoFoglio";

Per riordinare un foglio di lavoro, possiamo utilizzare il metodo Move dell'oggetto Foglio di lavoro. Ad esempio, se vogliamo spostare il primo foglio di lavoro come secondo foglio di lavoro, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.get_Item(1).Move(After: Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.get_Item(2));

In questo caso, stiamo spostando il primo foglio di lavoro come secondo foglio di lavoro utilizzando il metodo Move. Dobbiamo specificare il foglio di lavoro precedente al quale vogliamo spostare il foglio di lavoro corrente.

Per eliminare un foglio di lavoro, possiamo utilizzare il metodo Delete dell'oggetto Foglio di lavoro. Ad esempio, se vogliamo eliminare il terzo foglio di lavoro, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.get_Item(3).Delete();

Ciclare tra i fogli di lavoro

Per ciclare tra i fogli di lavoro, possiamo utilizzare un ciclo foreach sulla collezione di Fogli di lavoro. Ad esempio, se vogliamo elencare i nomi di tutti i fogli di lavoro della cartella di lavoro attiva, possiamo utilizzare il seguente codice:

foreach (Excel.Worksheet worksheet in Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets)
{
    Console.WriteLine(worksheet.Name);
}

In questo esempio, stiamo stampando il nome di ogni foglio di lavoro sulla console.

Oggetto Intervallo

Ottenere un riferimento all'intervallo attivo

Per ottenere un riferimento all'intervallo attivo (ovvero la cella selezionata dall'utente), possiamo utilizzare la proprietà ActiveCell dell'oggetto Applicazione. Ad esempio, se vogliamo ottenere un riferimento all'intervallo attivo, possiamo utilizzare il seguente codice:

Excel.Range activeRange = Globals.ThisAddIn.Application.ActiveCell;

Questo codice ci restituirà un riferimento all'intervallo attivo, che possiamo utilizzare per accedere ai suoi valori e proprietà.

Ottenere un riferimento all'intervallo tramite indirizzo

Per ottenere un riferimento a un intervallo di celle specifico, possiamo utilizzare il metodo Range dell'oggetto Foglio di lavoro. Ad esempio, se vogliamo ottenere un riferimento all'intervallo di celle A1:B2 del foglio di lavoro attivo, possiamo utilizzare il seguente codice:

Excel.Range range = Globals.ThisAddIn.Application.ActiveSheet.Range["A1:B2"];

In questo caso, stiamo utilizzando la notazione degli intervalli per specificare l'intervallo di celle desiderato.

Scrivere e leggere valori nelle celle

Per scrivere un valore in una specifica cella, possiamo assegnarlo alla proprietà Value2 dell'oggetto Intervallo. Ad esempio, se vogliamo scrivere il valore "Hello, world!" nella cella A1 del foglio di lavoro attivo, possiamo utilizzare il seguente codice:

Globals.ThisAddIn.Application.ActiveSheet.Range["A1"].Value2 = "Hello, world!";

In questo caso, stiamo assegnando il valore "Hello, world!" alla cella A1 utilizzando l'oggetto Intervallo specificato dalla notazione degli intervalli.

Per leggere un valore da una specifica cella, possiamo accedere alla proprietà Value2 dell'oggetto Intervallo. Ad esempio, se vogliamo leggere il valore dalla cella A1 del foglio di lavoro attivo, possiamo utilizzare il seguente codice:

string value = (string)Globals.ThisAddIn.Application.ActiveSheet.Range["A1"].Value2;

In questo caso, stiamo leggendo il valore dalla cella A1 e, poiché sappiamo che il valore è una stringa, lo stiamo convertendo esplicitamente a stringa.

Formattare gli intervalli

Per formattare un intervallo di celle, possiamo utilizzare le proprietà e i metodi dell'oggetto Intervallo. Ad esempio, se vogliamo impostare lo stile di grassetto e il colore di sfondo per l'intervallo di celle A1:C3 del foglio di lavoro attivo, possiamo utilizzare il seguente codice:

Excel.Range range = Globals.ThisAddIn.Application.ActiveSheet.Range["A1:C3"];
range.Font.Bold = true;
range.Interior.Color = Excel.XlRgbColor.rgbRed;

In questo caso, stiamo impostando il testo in grassetto e il colore di sfondo rosso per l'intervallo di celle A1:C3.

📚 Uso degli oggetti con un AddIn di Excel

Fino ad ora, abbiamo esaminato come utilizzare gli oggetti di Excel con una personalizzazione a livello di documento. Tuttavia, possiamo utilizzare gli stessi oggetti anche con un AddIn di Excel. La principale differenza è che il codice degli AddIn è disponibile per tutti i fogli di lavoro aperti, non solo per uno specifico foglio di lavoro.

Per utilizzare gli oggetti di Excel con un AddIn, è necessario fare alcune modifiche al codice. Ad esempio, invece di ThisWorkbook, dobbiamo utilizzare Globals.ThisAddIn.Application.ActiveWorkbook per ottenere un riferimento alla cartella di lavoro attiva. Inoltre, per ottenere un riferimento a un oggetto VSTO anziché a un oggetto PIA, dobbiamo utilizzare il metodo GetVstoObject().

Con queste modifiche, possiamo utilizzare gli stessi oggetti e metodi per estendere le funzionalità di Excel con un AddIn.

🎉 Conclusioni

In questo articolo, abbiamo esaminato come utilizzare gli oggetti di Excel con VSTO per estendere le funzionalità di Excel. Abbiamo esaminato il modello degli oggetti di Excel, le differenze tra le assemblee non gestite e gestite, e come utilizzare gli oggetti per scrivere codice personalizzato. Abbiamo anche esaminato come utilizzare gli oggetti di Excel con un AddIn e le modifiche necessarie al codice. Speriamo che questo articolo vi abbia fornito una buona comprensione di come utilizzare gli oggetti di Excel con VSTO.

Are you spending too much time on seo writing?

SEO Course
1M+
SEO Link Building
5M+
SEO Writing
800K+
WHY YOU SHOULD CHOOSE Proseoai

Proseoai has the world's largest selection of seo courses for you to learn. Each seo course has tons of seo writing for you to choose from, so you can choose Proseoai for your seo work!

Browse More Content