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à:

  • Creare un'applicazione che utilizza gli oggetti di automazione di Microsoft Office e incorpora le informazioni dei tipi dalle librerie di COM di Microsoft Office.

  • Pubblicare ed eseguire l'applicazione con più versioni di Microsoft Office senza un assembly PIA.

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 computer in cui sono installati .NET Framework 4 e una versione diversa di Excel.

Per creare un'applicazione che utilizza più versioni di Microsoft Office

  1. Avviare Visual Studio in un computer in cui è installato Excel.

  2. Scegliere Nuovo dal menu File, quindi fare clic su Progetto.

  3. Nel riquadro Tipi progetto della finestra di dialogo Nuovo progetto verificare che sia selezionata la voce Finestre. Selezionare Applicazione console nel riquadro Modelli. Digitare CreateExcelWorkbook nella casella Nome, quindi scegliere OK. Verrà creato il nuovo progetto.

  4. Se si utilizza Visual Basic, fare clic con il pulsante destro del mouse sul progetto CreateExcelWorkbook e scegliere Proprietà. Fare clic sulla scheda Riferimenti. Fare clic sul pulsante Aggiungi. Se si utilizza Visual C#, in Esplora soluzioni fare clic con il pulsante destro del mouse sulla cartella Riferimenti, quindi scegliere Aggiungi riferimento.

  5. 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 OK.

  6. 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.

  7. Se si utilizza Visual Basic, fare doppio clic sul file Module1.vb. Se si utilizza Visual C#, fare doppio clic sul 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.
                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.
                        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;
                }
            }
        }
    }
    
  8. Salvare il progetto.

  9. 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

  1. Aprire il progetto creato dalla procedura dettagliata in Visual Studio.

  2. 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.

  3. Installare l'applicazione in un computer in cui sono installati .NET Framework 4 e una versione diversa di Excel.

  4. Al termine dell'installazione, eseguire il programma installato.

  5. 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)

Riferimenti

/link (Visual Basic)

/link (opzioni del compilatore C#)