Wskazówki: Programowanie Office (C# i Visual Basic)Walkthrough: Office Programming (C# and Visual Basic)

Program Visual Studio oferuje funkcje C# programu i Visual Basic, które zwiększają Microsoft Office programowanie.Visual Studio offers features in C# and Visual Basic that improve Microsoft Office programming. Przydatne C# funkcje obejmują argumenty nazwane i opcjonalne oraz wartości zwracane typu dynamic.Helpful C# features include named and optional arguments and return values of type dynamic. W programowaniu COM można pominąć słowo kluczowe ref i uzyskać dostęp do właściwości indeksowanych.In COM programming, you can omit the ref keyword and gain access to indexed properties. Funkcje w Visual Basic zawierają właściwości, które są implementowane przez funkcję autouzupełniania, instrukcje w wyrażeniach lambda i Inicjatory kolekcji.Features in Visual Basic include auto-implemented properties, statements in lambda expressions, and collection initializers.

Oba języki umożliwiają osadzanie informacji o typie, dzięki czemu można wdrażać zestawy, które współdziałają ze składnikami modelu COM bez wdrażania podstawowych zestawów międzyoperacyjnych (zestawów PIA) na komputerze użytkownika.Both languages enable embedding of type information, which allows deployment of assemblies that interact with COM components without deploying primary interop assemblies (PIAs) to the user's computer. Aby uzyskać więcej informacji, zobacz Przewodnik: osadzanie typów z zarządzanych zestawów.For more information, see Walkthrough: Embedding Types from Managed Assemblies.

W tym instruktażu przedstawiono te funkcje w kontekście programowania pakietu Office, ale wiele z tych funkcji jest również przydatnych w programowaniu ogólnym.This walkthrough demonstrates these features in the context of Office programming, but many of these features are also useful in general programming. W tym przewodniku używasz aplikacji dodatku programu Excel do tworzenia skoroszytu programu Excel.In the walkthrough, you use an Excel Add-in application to create an Excel workbook. Następnie utworzysz dokument programu Word zawierający link do skoroszytu.Next, you create a Word document that contains a link to the workbook. Na koniec zobaczysz, jak włączyć i wyłączyć zależność PIA.Finally, you see how to enable and disable the PIA dependency.

Wymagania wstępnePrerequisites

Aby ukończyć ten przewodnik, musisz mieć zainstalowany Microsoft Office Excel i Microsoft Office Word.You must have Microsoft Office Excel and Microsoft Office Word installed on your computer to complete this walkthrough.

Uwaga

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia.The Visual Studio edition that you have and the settings that you use determine these elements. Aby uzyskać więcej informacji, zobacz personalizowanie środowiska IDE.For more information, see Personalizing the IDE.

Aby skonfigurować aplikację dodatku dla programu ExcelTo set up an Excel Add-in application

  1. Uruchom program Visual Studio.Start Visual Studio.

  2. W menu plik wskaż polecenie Nowy, a następnie kliknij pozycję projekt.On the File menu, point to New, and then click Project.

  3. W okienku zainstalowane szablony rozwiń węzeł Visual Basic lub Wizualizacja C# , rozwiń węzeł Office, a następnie kliknij pozycję wersja roku produktu pakietu Office.In the Installed Templates pane, expand Visual Basic or Visual C#, expand Office, and then click the version year of the Office product.

  4. W okienku Szablony kliknij pozycję Excel <version > dodatku.In the Templates pane, click Excel <version> Add-in.

  5. Sprawdź górną część okienka Szablony , aby upewnić się, że w polu platforma docelowa zostanie wyświetlona .NET Framework 4lub nowsza wersja.Look at the top of the Templates pane to make sure that .NET Framework 4, or a later version, appears in the Target Framework box.

  6. Jeśli chcesz, wpisz nazwę projektu w polu Nazwa .Type a name for your project in the Name box, if you want to.

  7. Kliknij przycisk OK.Click OK.

  8. Nowy projekt zostanie wyświetlony w Eksplorator rozwiązań.The new project appears in Solution Explorer.

Aby dodać odwołaniaTo add references

  1. W Eksplorator rozwiązańkliknij prawym przyciskiem myszy nazwę projektu, a następnie kliknij pozycję Dodaj odwołanie.In Solution Explorer, right-click your project's name and then click Add Reference. Zostanie wyświetlone okno dialogowe Dodawanie odwołania .The Add Reference dialog box appears.

  2. Na karcie zestawy wybierz pozycję Microsoft. Office. Interop. Excel, wersja <version>.0.0.0 (Aby uzyskać klucz do numerów wersji produktu pakietu Office, zobacz Microsoft Versions), na liście Nazwa składnika , a następnie naciśnij i przytrzymaj klawisz Ctrl. Wybierz Microsoft. Office. Interop. Word, version <version>.0.0.0.On the Assemblies tab, select Microsoft.Office.Interop.Excel, version <version>.0.0.0 (for a key to the Office product version numbers, see Microsoft Versions), in the Component Name list, and then hold down the CTRL key and select Microsoft.Office.Interop.Word, version <version>.0.0.0. Jeśli zestawy nie są widoczne, może być konieczne zagwarantowanie, że są one zainstalowane i wyświetlone (zobacz instrukcje: Instalowanie podstawowych zestawów międzyoperacyjnych pakietu Office).If you do not see the assemblies, you may need to ensure they are installed and displayed (see How to: Install Office Primary Interop Assemblies).

  3. Kliknij przycisk OK.Click OK.

Aby dodać wymagane instrukcje importu lub dyrektywyTo add necessary Imports statements or using directives

  1. W Eksplorator rozwiązańkliknij prawym przyciskiem myszy plik ThisAddIn. vb lub ThisAddIn.cs , a następnie kliknij polecenie Wyświetl kod.In Solution Explorer, right-click the ThisAddIn.vb or ThisAddIn.cs file and then click View Code.

  2. Dodaj następujące instrukcje Imports (Visual Basic) lub using dyrektywy (C#) na górze pliku kodu, jeśli jeszcze nie istnieją.Add the following Imports statements (Visual Basic) or using directives (C#) to the top of the code file if they are not already present.

    using System.Collections.Generic;
    using Excel = Microsoft.Office.Interop.Excel;
    using Word = Microsoft.Office.Interop.Word;
    
    Imports Microsoft.Office.Interop
    

Aby utworzyć listę kont bankowychTo create a list of bank accounts

  1. W Eksplorator rozwiązańkliknij prawym przyciskiem myszy nazwę projektu, kliknij polecenie Dodaj, a następnie kliknij pozycję Klasa.In Solution Explorer, right-click your project's name, click Add, and then click Class. Nadaj nazwę klasy Account. vb, jeśli używasz programu Visual Basic lub Account.cs C#.Name the class Account.vb if you are using Visual Basic or Account.cs if you are using C#. Kliknij przycisk Dodaj.Click Add.

  2. Zastąp definicję klasy Account poniższym kodem.Replace the definition of the Account class with the following code. Definicje klas używają właściwości, które są implementowane.The class definitions use auto-implemented properties. Aby uzyskać więcej informacji, zobacz zaimplementowane właściwości.For more information, see Auto-Implemented Properties.

    class Account
    {
        public int ID { get; set; }
        public double Balance { get; set; }
    }
    
    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. Aby utworzyć bankAccounts listę zawierającą dwa konta, Dodaj następujący kod do metody ThisAddIn_Startup w ThisAddIn. vb lub ThisAddIn.cs.To create a bankAccounts list that contains two accounts, add the following code to the ThisAddIn_Startup method in ThisAddIn.vb or ThisAddIn.cs. Deklaracje list używają inicjatorów kolekcji.The list declarations use collection initializers. Aby uzyskać więcej informacji, zobacz Inicjatory kolekcji.For more information, see Collection Initializers.

    var bankAccounts = new List<Account> 
    {
        new Account 
        {
            ID = 345,
            Balance = 541.27
        },
        new Account 
        {
            ID = 123,
            Balance = -127.44
        }
    };
    
    Dim bankAccounts As New List(Of Account) From {
        New Account With {
                              .ID = 345,
                              .Balance = 541.27
                         },
        New Account With {
                              .ID = 123,
                              .Balance = -127.44
                         }
        }
    

Aby wyeksportować dane do programu ExcelTo export data to Excel

  1. W tym samym pliku Dodaj następującą metodę do klasy ThisAddIn.In the same file, add the following method to the ThisAddIn class. Metoda konfiguruje skoroszyt programu Excel i eksportuje do niego dane.The method sets up an Excel workbook and exports data to it.

    void DisplayInExcel(IEnumerable<Account> accounts,
               Action<Account, Excel.Range> DisplayFunc)
    {
        var excelApp = this.Application;
        // Add a new Excel workbook.
        excelApp.Workbooks.Add();
        excelApp.Visible = true;
        excelApp.Range["A1"].Value = "ID";
        excelApp.Range["B1"].Value = "Balance";
        excelApp.Range["A2"].Select();
    
        foreach (var ac in accounts)
        {
            DisplayFunc(ac, excelApp.ActiveCell);
            excelApp.ActiveCell.Offset[1, 0].Select();
        }
        // Copy the results to the Clipboard.
        excelApp.Range["A1:B3"].Copy();
    }
    
    Sub DisplayInExcel(ByVal accounts As IEnumerable(Of Account),
                   ByVal DisplayAction As Action(Of Account, Excel.Range))
    
        With Me.Application
            ' Add a new Excel workbook.
            .Workbooks.Add()
            .Visible = True
            .Range("A1").Value = "ID"
            .Range("B1").Value = "Balance"
            .Range("A2").Select()
    
            For Each ac In accounts
                DisplayAction(ac, .ActiveCell)
                .ActiveCell.Offset(1, 0).Select()
            Next
    
            ' Copy the results to the Clipboard.
            .Range("A1:B3").Copy()
        End With
    End Sub
    

    W tej C# metodzie są używane dwie nowe funkcje.Two new C# features are used in this method. Obie te funkcje już istnieją w Visual Basic.Both of these features already exist in Visual Basic.

    • Metoda Add ma opcjonalny parametr służący do określania określonego szablonu.Method Add has an optional parameter for specifying a particular template. Parametry opcjonalne, nowość w C# 4, umożliwiają pominięcie argumentu dla tego parametru, jeśli ma być używana wartość domyślna parametru.Optional parameters, new in C# 4, enable you to omit the argument for that parameter if you want to use the parameter's default value. Ponieważ żaden argument nie jest wysyłany w poprzednim przykładzie, Add używa szablonu domyślnego i tworzy nowy skoroszyt.Because no argument is sent in the previous example, Add uses the default template and creates a new workbook. Równoważna instrukcja we wcześniejszych wersjach programu C# wymaga argumentu symbolu zastępczego: excelApp.Workbooks.Add(Type.Missing).The equivalent statement in earlier versions of C# requires a placeholder argument: excelApp.Workbooks.Add(Type.Missing).

      Aby uzyskać więcej informacji, zobacz argumenty nazwane i opcjonalne.For more information, see Named and Optional Arguments.

    • Właściwości Range i Offset obiektu Range używają funkcji indeksowanych właściwości .The Range and Offset properties of the Range object use the indexed properties feature. Ta funkcja umożliwia korzystanie z tych właściwości z typów COM przy użyciu następującej składni typowej C# .This feature enables you to consume these properties from COM types by using the following typical C# syntax. Właściwości indeksowane umożliwiają również korzystanie z właściwości Value obiektu Range, eliminując konieczność używania właściwości Value2.Indexed properties also enable you to use the Value property of the Range object, eliminating the need to use the Value2 property. Właściwość Value jest indeksowana, ale indeks jest opcjonalny.The Value property is indexed, but the index is optional. Argumenty opcjonalne i właściwości indeksowane działają razem w poniższym przykładzie.Optional arguments and indexed properties work together in the following example.

      // Visual C# 2010 provides indexed properties for COM programming.
      excelApp.Range["A1"].Value = "ID";
      excelApp.ActiveCell.Offset[1, 0].Select();
      

      W starszych wersjach języka wymagana jest następująca specjalna składnia.In earlier versions of the language, the following special syntax is required.

      // In Visual C# 2008, you cannot access the Range, Offset, and Value
      // properties directly.
      excelApp.get_Range("A1").Value2 = "ID";
      excelApp.ActiveCell.get_Offset(1, 0).Select();
      

      Nie można tworzyć własnych właściwości indeksowanych.You cannot create indexed properties of your own. Funkcja obsługuje tylko użycie istniejących właściwości indeksowanych.The feature only supports consumption of existing indexed properties.

      Aby uzyskać więcej informacji, zobacz jak: korzystanie z właściwości indeksowanych w programowaniu międzyoperacyjnym modelu COM.For more information, see How to: Use Indexed Properties in COM Interop Programming.

  2. Dodaj następujący kod na końcu DisplayInExcel, aby dopasować szerokości kolumn w celu dopasowania do zawartości.Add the following code at the end of DisplayInExcel to adjust the column widths to fit the content.

    excelApp.Columns[1].AutoFit();
    excelApp.Columns[2].AutoFit();
    
    ' Add the following two lines at the end of the With statement.
    .Columns(1).AutoFit()
    .Columns(2).AutoFit()
    

    Te dodatki przedstawiają kolejną funkcję C#w: traktowanie wartości Object zwracanych z hostów com, takich jak pakiet Office, tak jakby były typu dynamicznego.These additions demonstrate another feature in C#: treating Object values returned from COM hosts such as Office as if they have type dynamic. Dzieje się tak automatycznie, gdy typy osadzania międzyoperacyjności mają ustawioną wartość domyślną, True lub, równoważne, gdy do zestawu jest przywoływana opcja kompilatora -link .This happens automatically when Embed Interop Types is set to its default value, True, or, equivalently, when the assembly is referenced by the -link compiler option. Typ dynamic umożliwia późne wiązanie, już dostępne w Visual Basic i pozwala uniknąć jawnego rzutowania wymaganego w C# 3,0 i wcześniejszych wersjach języka.Type dynamic allows late binding, already available in Visual Basic, and avoids the explicit casting required in C# 3.0 and earlier versions of the language.

    Na przykład excelApp.Columns[1] zwraca Object, a AutoFit jest metodą zakresu programu Excel.For example, excelApp.Columns[1] returns an Object, and AutoFit is an Excel Range method. Bez dynamicnależy rzutować obiekt zwrócony przez excelApp.Columns[1] jako wystąpienie Range przed wywołaniem metody AutoFit.Without dynamic, you must cast the object returned by excelApp.Columns[1] as an instance of Range before calling method AutoFit.

    // Casting is required in Visual C# 2008.
    ((Excel.Range)excelApp.Columns[1]).AutoFit();
    
    // Casting is not required in Visual C# 2010.
    excelApp.Columns[1].AutoFit();
    

    Aby uzyskać więcej informacji na temat osadzania typów międzyoperacyjnych, zobacz procedury "aby znaleźć odwołanie PIA" i "aby przywrócić zależność PIA" w dalszej części tego tematu.For more information about embedding interop types, see procedures "To find the PIA reference" and "To restore the PIA dependency" later in this topic. Aby uzyskać więcej informacji na temat dynamic, zobacz dynamiczne lub Używanie typu dynamicznego.For more information about dynamic, see dynamic or Using Type dynamic.

Aby wywołać DisplayInExcelTo invoke DisplayInExcel

  1. Dodaj następujący kod na końcu metody ThisAddIn_StartUp.Add the following code at the end of the ThisAddIn_StartUp method. Wywołanie DisplayInExcel zawiera dwa argumenty.The call to DisplayInExcel contains two arguments. Pierwszy argument to nazwa listy kont do przetworzenia.The first argument is the name of the list of accounts to be processed. Drugi argument jest wielowierszowym wyrażeniem lambda, które definiuje sposób przetwarzania danych.The second argument is a multiline lambda expression that defines how the data is to be processed. Wartości ID i balance dla każdego konta są wyświetlane w sąsiednich komórkach, a wiersz jest wyświetlany na czerwono, jeśli saldo jest mniejsze od zera.The ID and balance values for each account are displayed in adjacent cells, and the row is displayed in red if the balance is less than zero. Aby uzyskać więcej informacji, zobacz wyrażenia lambda.For more information, see Lambda Expressions.

    DisplayInExcel(bankAccounts, (account, cell) =>
    // This multiline lambda expression sets custom processing rules  
    // for the bankAccounts.
    {
        cell.Value = account.ID;
        cell.Offset[0, 1].Value = account.Balance;
        if (account.Balance < 0)
        {
            cell.Interior.Color = 255;
            cell.Offset[0, 1].Interior.Color = 255;
        }
    });
    
    DisplayInExcel(bankAccounts,
           Sub(account, cell)
               ' This multiline lambda expression sets custom
               ' processing rules for the bankAccounts.
               cell.Value = account.ID
               cell.Offset(0, 1).Value = account.Balance
    
               If account.Balance < 0 Then
                   cell.Interior.Color = RGB(255, 0, 0)
                   cell.Offset(0, 1).Interior.Color = RGB(255, 0, 0)
               End If
           End Sub)
    
  2. Aby uruchomić program, naciśnij klawisz F5.To run the program, press F5. Zostanie wyświetlony arkusz programu Excel zawierający dane z kont.An Excel worksheet appears that contains the data from the accounts.

Aby dodać dokument programu WordTo add a Word document

  1. Dodaj następujący kod na końcu metody ThisAddIn_StartUp, aby utworzyć dokument programu Word zawierający link do skoroszytu programu Excel.Add the following code at the end of the ThisAddIn_StartUp method to create a Word document that contains a link to the Excel workbook.

    var wordApp = new Word.Application();
    wordApp.Visible = true;
    wordApp.Documents.Add();
    wordApp.Selection.PasteSpecial(Link: true, DisplayAsIcon: true);
    
    Dim wordApp As New Word.Application
    wordApp.Visible = True
    wordApp.Documents.Add()
    wordApp.Selection.PasteSpecial(Link:=True, DisplayAsIcon:=True)
    

    Ten kod ilustruje kilka nowych funkcji w C#: możliwość pomijania słowa kluczowego ref w programowaniu com, argumentach nazwanych i opcjonalnych argumentach.This code demonstrates several of the new features in C#: the ability to omit the ref keyword in COM programming, named arguments, and optional arguments. Te funkcje już istnieją w Visual Basic.These features already exist in Visual Basic. Metoda PasteSpecial ma siedem parametrów, spośród których wszystkie są zdefiniowane jako opcjonalne parametry odwołania.The PasteSpecial method has seven parameters, all of which are defined as optional reference parameters. Argumenty nazwane i opcjonalne umożliwiają określenie parametrów, do których chcesz uzyskać dostęp według nazwy, i wysłanie argumentów tylko do tych parametrów.Named and optional arguments enable you to designate the parameters you want to access by name and to send arguments to only those parameters. W tym przykładzie argumenty są wysyłane w celu wskazania, że należy utworzyć link do skoroszytu w schowku (parametr Link) i czy łącze ma być wyświetlane w dokumencie programu Word jako ikona (DisplayAsIcon parametrów).In this example, arguments are sent to indicate that a link to the workbook on the Clipboard should be created (parameter Link) and that the link is to be displayed in the Word document as an icon (parameter DisplayAsIcon). Wizualizacja C# umożliwia również Pominięcie słowa kluczowego ref dla tych argumentów.Visual C# also enables you to omit the ref keyword for these arguments.

Aby uruchomić aplikacjęTo run the application

  1. Naciśnij klawisz F5, aby uruchomić aplikację.Press F5 to run the application. Program Excel uruchamia i wyświetla tabelę zawierającą informacje z dwóch kont w bankAccounts.Excel starts and displays a table that contains the information from the two accounts in bankAccounts. Zostanie wyświetlony dokument programu Word zawierający link do tabeli programu Excel.Then a Word document appears that contains a link to the Excel table.

Aby wyczyścić ukończony projektTo clean up the completed project

  1. W programie Visual Studio kliknij pozycję Wyczyść rozwiązanie w menu kompilacja .In Visual Studio, click Clean Solution on the Build menu. W przeciwnym razie dodatek będzie uruchamiany za każdym razem, gdy otworzysz program Excel na komputerze.Otherwise, the add-in will run every time that you open Excel on your computer.

Aby znaleźć odwołanie PIATo find the PIA reference

  1. Uruchom aplikację ponownie, ale nie klikaj przycisku Wyczyść rozwiązanie.Run the application again, but do not click Clean Solution.

  2. Wybierz pozycję Rozpocznij.Select the Start. Znajdź Microsoft Visual Studio <version > i Otwórz wiersz polecenia dewelopera.Locate Microsoft Visual Studio <version> and open a developer command prompt.

  3. Wpisz ildasm w oknie wiersz polecenia dla deweloperów dla programu Visual Studio, a następnie naciśnij klawisz ENTER.Type ildasm in the Developer Command Prompt for Visual Studio window, and then press ENTER. Zostanie wyświetlone okno IL DASM.The IL DASM window appears.

  4. W menu plik w oknie Il DASM wybierz pozycję plik > Otwórz.On the File menu in the IL DASM window, select File > Open. Kliknij dwukrotnie pozycję Visual Studio <version > , a następnie kliknij dwukrotnie pozycję projekty.Double-click Visual Studio <version>, and then double-click Projects. Otwórz folder dla projektu i sprawdź folder bin/debug dla nazwy projektu. dll.Open the folder for your project, and look in the bin/Debug folder for your project name.dll. Kliknij dwukrotnie nazwę projektu. dll.Double-click your project name.dll. Nowe okno wyświetla atrybuty projektu, oprócz odwołań do innych modułów i zestawów.A new window displays your project's attributes, in addition to references to other modules and assemblies. Należy zauważyć, że przestrzenie nazw Microsoft.Office.Interop.Excel i Microsoft.Office.Interop.Word są zawarte w zestawie.Note that namespaces Microsoft.Office.Interop.Excel and Microsoft.Office.Interop.Word are included in the assembly. Domyślnie w programie Visual Studio kompilator importuje wymagane typy z przywoływanego PIA do zestawu.By default in Visual Studio, the compiler imports the types you need from a referenced PIA into your assembly.

    Aby uzyskać więcej informacji, zobacz jak: wyświetlić zawartość zestawu.For more information, see How to: View Assembly Contents.

  5. Kliknij dwukrotnie ikonę manifestu .Double-click the MANIFEST icon. Zostanie wyświetlone okno zawierające listę zestawów zawierających elementy, do których odwołuje się projekt.A window appears that contains a list of assemblies that contain items referenced by the project. na liście nie znajdują się Microsoft.Office.Interop.Excel i Microsoft.Office.Interop.Word.Microsoft.Office.Interop.Excel and Microsoft.Office.Interop.Word are not included in the list. Ponieważ typy wymagane przez projekt zostały zaimportowane do zestawu, odwołania do PIA nie są wymagane.Because the types your project needs have been imported into your assembly, references to a PIA are not required. Ułatwia to wdrażanie.This makes deployment easier. Zestawów PIA nie muszą znajdować się na komputerze użytkownika, a ponieważ aplikacja nie wymaga wdrożenia określonej wersji PIA, aplikacje mogą być zaprojektowane do pracy z wieloma wersjami pakietu Office, pod warunkiem, że niezbędne interfejsy API istnieją we wszystkich wersjach .The PIAs do not have to be present on the user's computer, and because an application does not require deployment of a specific version of a PIA, applications can be designed to work with multiple versions of Office, provided that the necessary APIs exist in all versions.

    Ponieważ wdrożenie zestawów PIA nie jest już konieczne, można utworzyć aplikację w zaawansowanych scenariuszach, które współdziałają z wieloma wersjami pakietu Office, w tym z wcześniejszymi wersjami.Because deployment of PIAs is no longer necessary, you can create an application in advanced scenarios that works with multiple versions of Office, including earlier versions. Jednak jest to możliwe tylko wtedy, gdy kod nie używa żadnych interfejsów API, które nie są dostępne w używanej wersji pakietu Office.However, this works only if your code does not use any APIs that are not available in the version of Office you are working with. Nie zawsze należy czyścić, czy określony interfejs API jest dostępny w starszej wersji, a z tego powodu nie zaleca się korzystania z wcześniejszych wersji pakietu Office.It is not always clear whether a particular API was available in an earlier version, and for that reason working with earlier versions of Office is not recommended.

    Uwaga

    Pakiet Office nie opublikował zestawów Pia przed pakietem Office 2003.Office did not publish PIAs before Office 2003. W związku z tym jedynym sposobem na wygenerowanie zestawu międzyoperacyjnego dla pakietu Office 2002 lub wcześniejszych wersji jest zaimportowanie odwołania COM.Therefore, the only way to generate an interop assembly for Office 2002 or earlier versions is by importing the COM reference.

  6. Zamknij okno manifestu i okno zestawu.Close the manifest window and the assembly window.

Aby przywrócić zależność PIATo restore the PIA dependency

  1. W Eksplorator rozwiązańkliknij przycisk Pokaż wszystkie pliki .In Solution Explorer, click the Show All Files button. Rozwiń folder odwołania i wybierz pozycję Microsoft. Office. Interop. Excel.Expand the References folder and select Microsoft.Office.Interop.Excel. Naciśnij klawisz F4, aby wyświetlić okno Właściwości .Press F4 to display the Properties window.

  2. W oknie Właściwości Zmień właściwość Osadź typy współdziałania z true na false.In the Properties window, change the Embed Interop Types property from True to False.

  3. Powtórz kroki 1 i 2 w tej procedurze dla Microsoft.Office.Interop.Word.Repeat steps 1 and 2 in this procedure for Microsoft.Office.Interop.Word.

  4. W C#programie Skomentuj dwa wywołania do Autofit na końcu metody DisplayInExcel.In C#, comment out the two calls to Autofit at the end of the DisplayInExcel method.

  5. Naciśnij klawisz F5, aby sprawdzić, czy projekt nadal działa poprawnie.Press F5 to verify that the project still runs correctly.

  6. Powtórz kroki 1-3 z poprzedniej procedury, aby otworzyć okno zestawu.Repeat steps 1-3 from the previous procedure to open the assembly window. Należy zauważyć, że Microsoft.Office.Interop.Word i Microsoft.Office.Interop.Excel nie znajdują się już na liście osadzonych zestawów.Notice that Microsoft.Office.Interop.Word and Microsoft.Office.Interop.Excel are no longer in the list of embedded assemblies.

  7. Kliknij dwukrotnie ikonę manifestu i przewiń listę przywoływanych zestawów.Double-click the MANIFEST icon and scroll through the list of referenced assemblies. Zarówno Microsoft.Office.Interop.Word, jak i Microsoft.Office.Interop.Excel znajdują się na liście.Both Microsoft.Office.Interop.Word and Microsoft.Office.Interop.Excel are in the list. Ponieważ aplikacja odwołuje się do programów Excel i Word zestawów Pia, a właściwość Osadź typy międzyoperacyjna ma wartość false, oba zestawy muszą istnieć na komputerze użytkownika końcowego.Because the application references the Excel and Word PIAs, and the Embed Interop Types property is set to False, both assemblies must exist on the end user's computer.

  8. W programie Visual Studio kliknij pozycję Wyczyść rozwiązanie w menu kompilacja , aby wyczyścić ukończony projekt.In Visual Studio, click Clean Solution on the Build menu to clean up the completed project.

Zobacz takżeSee also