Procedura dettagliata: incorporamento delle informazioni sui tipi da assembly di Microsoft Office (C# e Visual Basic)
Se si incorporano informazioni dei tipi in un'applicazione che fa riferimento agli oggetti COM, è possibile eliminare la necessità di un assembly di interoperabilità primario (PIA, Primary Interop Assembly).Le informazioni dei tipi incorporate consentono inoltre di ottenere l'indipendenza dalla versione per l'applicazione.Ovvero, è possibile scrivere il programma in modo che utilizzi i tipi di più versioni di una libreria COM senza la necessità di un assembly PIA specifico per ogni versione.Si tratta di uno scenario comune per le applicazioni che utilizzano gli oggetti delle librerie Microsoft Office.L'incorporamento delle informazioni dei tipi consente alla stessa build di un programma di utilizzare versioni diverse di Microsoft Office in computer diversi senza la necessità di ridistribuire il programma o l'assembly PIA per ogni versione di Microsoft Office.
In questa procedura dettagliata si completeranno le seguenti attività:
Per creare un'applicazione che utilizza più versioni di Microsoft Office.
Per pubblicare l'applicazione in un computer in cui è installata una versione diversa di Microsoft Office.
[!NOTA]
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.
Prerequisiti
Per l'esecuzione di questa procedura sono richiesti i seguenti elementi:
Un computer in cui sono installati Visual Studio e Microsoft Excel.
Un secondo computer in cui .NET Framework 4 e una versione diversa di Excel vengono installati.
Per creare un'applicazione che utilizza più versioni di Microsoft Office
Avviare Visual Studio in un computer in cui è installato Excel.
Dal menu File, scegliere Nuovo, Progetto.
Nel riquadro Tipi progetto della finestra di dialogo Nuovo progetto verificare che sia selezionata la voce Finestre.Selezionare Applicazione console nel riquadro Modelli.Nella casella Nome, immettere CreateExcelWorkbookquindi scegliere il pulsante OK.Verrà creato il nuovo progetto.
Se si utilizza Visual Basic, aprire il menu di scelta rapida del progetto CreateExcelWorkbook e quindi scegliere Proprietà.Scegliere la scheda Riferimenti.Selezionare il pulsante Aggiungi.Se si utilizza Visual C#, in Esplora soluzioni, aprire il menu di scelta rapida per la cartella Riferimenti quindi scegliere Aggiungi riferimento.
Nella scheda .NET fare clic sulla versione più recente di Microsoft.Office.Interop.Excel.Ad esempio, Microsoft.Office.Interop.Excel 14.0.0.0.Scegliere il pulsante OK.
Nell'elenco di riferimenti per il progetto CreateExcelWorkbook selezionare il riferimento per Microsoft.Office.Interop.Excel aggiunto nel passaggio precedente.Nella finestra Proprietà verificare che la proprietà Embed Interop Types sia impostata su True.
[!NOTA]
L'applicazione creata in questa procedura dettagliata viene eseguita con versioni diverse di Microsoft Office grazie alle informazioni dei tipi di interoperabilità incorporate.Se la proprietà Embed Interop Types è impostata su False, è necessario includere un assembly PIA per ogni versione di Microsoft Office con la quale l'applicazione verrà eseguita.
Se si utilizza Visual Basic, aprire il file Module1.vb.Se si utilizza Visual C#, aprire il file Program.cs.Sostituire il codice del file con il seguente.
Imports Excel = Microsoft.Office.Interop.Excel Module Module1 Sub Main() Dim values = {4, 6, 18, 2, 1, 76, 0, 3, 11} CreateWorkbook(values, "C:\SampleFolder\SampleWorkbook.xls") End Sub Sub CreateWorkbook(ByVal values As Integer(), ByVal filePath As String) Dim excelApp As Excel.Application = Nothing Dim wkbk As Excel.Workbook Dim sheet As Excel.Worksheet Try ' Start Excel and create a workbook and worksheet. excelApp = New Excel.Application wkbk = excelApp.Workbooks.Add() sheet = CType(wkbk.Sheets.Add(), Excel.Worksheet) sheet.Name = "Sample Worksheet" ' Write a column of values. ' In the For loop, both the row index and array index start at 1. ' Therefore the value of 4 at array index 0 is not included. For i = 1 To values.Length - 1 sheet.Cells(i, 1) = values(i) Next ' Suppress any alerts and save the file. Create the directory ' if it does not exist. Overwrite the file if it exists. excelApp.DisplayAlerts = False Dim folderPath = My.Computer.FileSystem.GetParentPath(filePath) If Not My.Computer.FileSystem.DirectoryExists(folderPath) Then My.Computer.FileSystem.CreateDirectory(folderPath) End If wkbk.SaveAs(filePath) Catch Finally sheet = Nothing wkbk = Nothing ' Close Excel. excelApp.Quit() excelApp = Nothing End Try End Sub End Module
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Excel = Microsoft.Office.Interop.Excel; namespace CreateExcelWorkbook { class Program { static void Main(string[] args) { int[] values = {4, 6, 18, 2, 1, 76, 0, 3, 11}; CreateWorkbook(values, @"C:\SampleFolder\SampleWorkbook.xls"); } static void CreateWorkbook(int[] values, string filePath) { Excel.Application excelApp = null; Excel.Workbook wkbk; Excel.Worksheet sheet; try { // Start Excel and create a workbook and worksheet. excelApp = new Excel.Application(); wkbk = excelApp.Workbooks.Add(); sheet = wkbk.Sheets.Add() as Excel.Worksheet; sheet.Name = "Sample Worksheet"; // Write a column of values. // In the For loop, both the row index and array index start at 1. // Therefore the value of 4 at array index 0 is not included. for (int i = 1; i < values.Length; i++) { sheet.Cells[i, 1] = values[i]; } // Suppress any alerts and save the file. Create the directory // if it does not exist. Overwrite the file if it exists. excelApp.DisplayAlerts = false; string folderPath = Path.GetDirectoryName(filePath); if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } wkbk.SaveAs(filePath); } catch { } finally { sheet = null; wkbk = null; // Close Excel. excelApp.Quit(); excelApp = null; } } } }
Salvare il progetto.
Premere CTRL+F5 per compilare ed eseguire il progetto.Verificare che una cartella di lavoro di Excel sia stata creata nel percorso specificato nel codice di esempio: C:\SampleFolder\SampleWorkbook.xls.
Per pubblicare l'applicazione in un computer in cui è installata una versione diversa di Microsoft Office
Aprire il progetto creato dalla procedura dettagliata in Visual Studio.
Scegliere Pubblica CreateExcelWorkbook dal menu Compila.Seguire i passaggi della Pubblicazione guidata per creare una versione installabile dell'applicazione.Per ulteriori informazioni, vedere Pubblicazione guidata (sviluppo per Office in Visual Studio).
Installare l'applicazione in un computer in cui sono installati .NET Framework 4 e una versione diversa di Excel.
Al termine dell'installazione, eseguire il programma installato.
Verificare che una cartella di lavoro di Excel sia stata creata nel percorso specificato nel codice di esempio: C:\SampleFolder\SampleWorkbook.xls.
Vedere anche
Attività
Procedura dettagliata: incorporamento dei tipi da assembly gestiti (C# e Visual Basic)