Udostępnij za pośrednictwem


Wskazówki: wstawianie danych do skoroszytu na serwerze

W tym instruktażu przedstawiono sposób wstawiania danych do zestawu danych, który jest buforowany w skoroszycie programu Microsoft Office Excel bez uruchamiania programu Excel za pomocą ServerDocument klasy.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu obsługiwanych w programach Excel 2013 i Excel 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

W przewodniku przedstawiono następujące zagadnienia:

  • Definiowanie zestawu danych, który zawiera dane z bazy danych AdventureWorksLT.

  • Tworzenie instancji zestawu danych w projekcie skoroszytu programu Excel i projekt aplikacji konsoli.

  • Tworzenie ListObject który jest powiązany z zestawu danych w skoroszycie.

  • Dodawanie zestawu danych w skoroszycie, do pamięci podręcznej danych.

  • Wstawianie danych do pamięci podręcznej zestawu danych przez uruchomienie kodu w aplikacji konsoli bez konieczności uruchamiania programu Excel.

Chociaż Instruktaż ten zakłada, że uruchamiasz kod na komputerze dewelopera, kod dowodzi tego instruktażu można na serwerze, który nie ma zainstalowanego programu Excel.

[!UWAGA]

Komputer może pokazać różne nazwy lub lokalizacje dla niektórych użytkowników programu Visual Studio elementów interfejsu w poniższych instrukcjach.Wydanie programu Visual Studio, że masz i ustawień, których używasz określają te elementy.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

Tworzenie projektu biblioteki klas, które definiuje zestaw danych

Aby użyć tego samego zestawu danych w projekcie skoroszytu programu Excel i aplikacji konsoli, należy zdefiniować zestaw danych w oddzielnych zestawów, do którego odwołują się obu tych projektów.Do wykonania tej procedury należy zdefiniować zestaw danych w projektu biblioteki klas.

Do tworzenia projektu biblioteki klas

  1. Start Visual Studio.

  2. W menu Plik, wskaż Nowy i kliknij przycisk Projekt.

  3. W okienku szablony, rozwiń węzeł Visual C# lub programu Visual Basic, a następnie kliknij przycisk systemu Windows.

  4. Na liście szablonów projektu, wybierz Biblioteka klas.

  5. W Nazwa wpisz AdventureWorksDataSet.

  6. Kliknij przycisk Przeglądaj, przejdź do %UserProfile%\My dokumenty (dla systemu Windows XP i starszych) lub folder %UserProfile%\Documents (dla systemu Windows Vista), a następnie kliknij Wybierz Folder.

  7. W Nowy projekt okno dialogowe pole, upewnij się, że Utwórz katalog rozwiązania pole wyboru nie jest zaznaczone.

  8. Kliknij przycisk OK.

    Visual Studiododaje AdventureWorksDataSet projekt Solution Explorer i otwiera Class1.cs lub Class1.vb pliku kodu.

  9. W Solution Explorer, kliknij prawym przyciskiem myszy Class1.cs lub Class1.vb, a następnie kliknij przycisk usunąć.Nie trzeba tego pliku do wykonania tej procedury.

Definiowanie zestawu danych w projektu biblioteki klas

Zdefiniuj maszynowy obiektu dataset zawierającego dane z bazy danych AdventureWorksLT dla programu SQL Server 2005.Dalej w tym instruktażu będą odwoływać tego zestawu danych z projektu skoroszytu programu Excel i projekt aplikacji konsoli.

Zestaw danych jest wpisane zestawu danych , oznaczającą dane w tabeli produktów bazy danych AdventureWorksLT.Aby uzyskać więcej informacji o wpisywanych zestawów danych, zobacz Praca z zestawami danych w Visual Studio.

Do definiowania zestawu danych wpisywanych w projektu biblioteki klas

  1. W Solution Explorer, kliknij przycisk AdventureWorksDataSet projektu.

  2. Jeśli Źródła danych okno nie jest widoczne, wyświetl go, w menu bar, wybierając View, Other Windows, Źródła danych.

  3. Wybierz polecenie Dodać nowe źródło danych zacząć Kreatora konfiguracji źródła danych.

  4. Kliknij przycisk bazy danych, a następnie kliknij przycisk Dalej.

  5. Jeśli masz połączenie z bazą danych AdventureWorksLT, wybierz to połączenie i kliknij przycisk Dalej.

    W przeciwnym razie kliknij przycisk Nowego połączeniai używać Dodawanie połączenia okno dialogowe, aby utworzyć nowe połączenie.Aby uzyskać więcej informacji, zobacz Wskazówki: wstawianie danych do skoroszytu na serwerze.

  6. In the Save the Connection String to the Application Configuration File page, click Next.

  7. W Wybierz obiekty bazy danych użytkownika strony, rozwiń węzeł tabele i wybierz produktu (SalesLT).

  8. Kliknij Zakończ.

    Plik AdventureWorksLTDataSet.xsd jest dodawany do AdventureWorksDataSet projektu.Ten plik definiuje następujące elementy:

    • Wpisane zestawu danych o nazwie AdventureWorksLTDataSet.Tego zestawu danych reprezentuje zawartość tabeli produktów w bazie danych AdventureWorksLT.

    • A TableAdapter named ProductTableAdapter.To TableAdapter służy do odczytu i zapisu danych AdventureWorksLTDataSet.Aby uzyskać więcej informacji, zobacz TableAdapter — Przegląd.

    Oba te obiekty użyje dalej w tym instruktażu.

  9. W Solution Explorer, kliknij prawym przyciskiem myszy AdventureWorksDataSet i kliknij przycisk budować.

    Zweryfikuj, że projekt buduje się bez błędów.

Tworzenie projektu skoroszytu programu Excel

Tworzenie projektu skoroszytu programu Excel dla interfejsu z danymi.W dalszej części tej procedury, spowoduje utworzenie ListObject wyświetlającym dane, i spowoduje dodanie instancji zestawu danych do pamięci podręcznej danych w skoroszycie.

Aby utworzyć projekt skoroszytu programu Excel

  1. W Solution Explorer, kliknij prawym przyciskiem myszy AdventureWorksDataSet roztwór, wskaż polecenie Dodaj, a następnie kliknij przycisk Nowego projektu.

  2. W okienku szablony, rozwiń węzeł Visual C# lub programu Visual Basic, a następnie rozwiń węzeł Office/SharePoint.

  3. W obszarze rozszerzony Office/SharePoint węzła, a następnie kliknij polecenie Wybierz Dodatki pakietu Office węzła.

  4. Na liście szablonów projektu, wybierz Skoroszyt Excel 2010 lub Skoroszyt programu Excel 2013 projektu.

  5. W Nazwa wpisz AdventureWorksReport.Nie należy modyfikować lokalizację.

  6. Kliknij przycisk OK.

    Visual Studio Tools dla pakietu Office Project kreatora zostanie otwarty.

  7. Zapewnienia, że Utwórz nowy dokument jest zaznaczone, a następnie kliknij przycisk OK.

    Visual StudioOtwiera AdventureWorksReport skoroszyt w Projektancie i dodaje AdventureWorksReport projekt Solution Explorer.

Dodawanie zestawu danych do źródła danych w projekcie skoroszytu programu Excel

Aby wyświetlić zestaw danych w skoroszycie programu Excel, należy najpierw dodać zestawu danych do źródła danych w projekcie skoroszytu programu Excel.

Aby dodać zestaw danych do źródła danych w projekcie skoroszytu programu Excel

  1. W Solution Explorer, kliknij dwukrotnie Sheet1.cs lub Sheet1.vb pod AdventureWorksReport projektu.

    Skoroszyt zostanie otwarty w projektancie.

  2. Na danych menu, kliknij przycisk Dodać nowe źródło danych.

    Kreatora konfiguracji źródła danych zostanie otwarty.

  3. Kliknij przycisk obiektu, a następnie kliknij przycisk Dalej.

  4. W wybrać obiekt chcesz Bind do strony, kliknij przycisk Dodaj odwołanie.

  5. Na Projekty , kliknij pozycję AdventureWorksDataSet a następnie kliknij przycisk OK.

  6. W obszarze AdventureWorksDataSet nazw AdventureWorksDataSet zestawu, kliknij przycisk AdventureWorksLTDataSet a następnie kliknij przycisk Zakończ.

    Źródła danych zostanie otwarte okno, a AdventureWorksLTDataSet jest dodawany do listy źródeł danych.

Tworzenie obiektu ListObject, które jest związany z wystąpieniem zestawu danych

Aby wyświetlić zestaw danych w skoroszycie, należy utworzyć ListObject który jest związany z wystąpieniem zestawu danych.Aby uzyskać więcej informacji o formantach wiązania z danymi, zobacz Wiązanie danych do formantów w rozwiązaniach pakietu Office.

Aby utworzyć obiektu ListObject, powiązanego z instancji zestawu danych

  1. W Źródła danych okna, rozwiń węzeł AdventureWorksLTDataSet węzła w obszarze AdventureWorksDataSet.

  2. Wybierz produktu węzła, kliknij strzałkę rozwijania, pojawia się, a następnie zaznacz obiektu ListObject na liście rozwijanej.

    Jeśli nie ma strzałkę rozwijania, upewnij się, że skoroszyt jest otwarty w projektancie.

  3. Przeciągnij produktu tabeli do komórki A1.

    A ListObject kontrolki o nazwie productListObject jest tworzony w arkuszu, począwszy od komórki A1.W tym samym czasie, obiekt dataset, o nazwie adventureWorksLTDataSet i BindingSource o nazwie productBindingSource są dodawane do projektu.ListObject Jest powiązany z BindingSource, które z kolei wiąże się obiektu dataset.

Dodawanie zestawu danych do pamięci podręcznej danych

Aby włączyć kod poza programem project skoroszytu programu Excel do dostępu do danych w skoroszycie, należy dodać zestaw danych do pamięci podręcznej danych.Aby uzyskać więcej informacji o pamięci podręcznej danych, zobacz Dane z pamięci podręcznej dostosowywane na poziomie dokumentu i Buforowanie danych.

Aby dodać zestaw danych do pamięci podręcznej danych

  1. W projektancie, kliknij adventureWorksLTDataSet.

  2. W Właściwości okno, ustawić modyfikatorów właściwość, aby publicznych.

  3. Ustaw CacheInDocument właściwość, aby True.

Punkt kontrolny

Tworzenie i uruchamianie projekcie skoroszytu programu Excel, aby zapewnić kompiluje i jest uruchamiany bez błędów.

Aby skompilować i uruchomić projekt

  1. W Solution Explorer, kliknij prawym przyciskiem myszy AdventureWorksReport projektu, wybierz polecenie program Debug: polecenie, a następnie kliknij przycisk uruchomić nowe wystąpienie.

    Zostanie zbudowany, a skoroszyt zostanie otwarty w programie Excel.ListObject w arkuszu 1 jest pusty, ponieważ adventureWorksLTDataSet obiektu w pamięci podręcznej danych nie ma jeszcze żadnych danych.W następnej sekcji, będzie używać aplikacji konsoli, aby wypełnić adventureWorksLTDataSet obiekt z danymi.

  2. Zamknięcie programu Excel.Nie zapisuj zmian.

Tworzenie projektu aplikacji konsoli

Utwórz projekt aplikacji konsoli, aby używać do wstawiania danych do pamięci podręcznej danych w skoroszycie.

Aby utworzyć projekt aplikacji konsoli

  1. W Solution Explorer, kliknij prawym przyciskiem myszy AdventureWorksDataSet roztwór, wskaż polecenie Dodaj, a następnie kliknij przycisk Nowego projektu.

  2. W Typów projektów okienku rozwiń węzeł Visual C# lub programu Visual Basic, a następnie kliknij przycisk systemu Windows.

  3. W Szablony okienka, a następnie kliknij polecenie Wybierz Console Application.

  4. W Nazwa wpisz DataWriter.Nie należy modyfikować lokalizację.

  5. Kliknij przycisk OK.

    Visual Studiododaje DataWriter projekt Solution Explorer i otwiera Program.cs lub Module1.vb pliku kodu.

Dodawanie danych do pamięci podręcznej zestawu danych przy użyciu aplikacji konsoli

Użycie ServerDocument klasy w aplikacji konsoli, aby wypełnić buforowanego zestawu danych w arkuszu danych.

Aby dodać dane do buforowanego zestawu danych

  1. W Solution Explorer, kliknij prawym przyciskiem myszy DataWriter projektu, a następnie kliknij przycisk Dodaj odwołanie.

  2. Na .NET kartę, a następnie kliknij polecenie Wybierz Microsoft.VisualStudio.Tools.Applications.ServerDocument.

  3. Kliknij przycisk OK.

  4. W Solution Explorer, kliknij prawym przyciskiem myszy DataWriter projektu, a następnie kliknij przycisk Dodaj odwołanie.

  5. Na Projekty kartę, a następnie kliknij polecenie Wybierz AdventureWorksDataSeti kliknij przycisk OK.

  6. Otwórz plik Program.cs lub Module1.vb w edytorze kodu.

  7. Dodaj następujący using (dla języka C#) lub Imports (dla języka Visual Basic) instrukcji na początek pliku kodu.

    Imports Microsoft.VisualStudio.Tools.Applications
    
    using Microsoft.VisualStudio.Tools.Applications;
    
  8. Dodaj następujący kod do Main metoda.Ten kod deklaruje następujące obiekty:

    • Wystąpienia AdventureWorksLTDataSet i ProductTableAdapter typów, które są zdefiniowane w AdventureWorksDataSet projektu.

    • Ścieżka do skoroszytu AdventureWorksReport w folderze build AdventureWorksReport projektu.

    • A ServerDocument obiekt będzie używany do dostępu do pamięci podręcznej danych w skoroszycie.

      [!UWAGA]

      Poniższy kod przyjmie, że używany jest skoroszyt, który ma rozszerzenie pliku xlsx.Jeśli skoroszyt w projekcie ma inne rozszerzenie pliku, zmodyfikuj ścieżkę w razie potrzeby.

    Dim productDataSet As New AdventureWorksDataSet.AdventureWorksLTDataSet()
    Dim productTableAdapter As _
        New AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()
    
    Dim workbookPath As String = System.Environment.GetFolderPath( _
        Environment.SpecialFolder.MyDocuments) & _
        "\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx" 
    Dim serverDocument1 As ServerDocument = Nothing
    
    AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet = 
        new AdventureWorksDataSet.AdventureWorksLTDataSet();
    AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter =
        new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();
    
    string workbookPath = System.Environment.GetFolderPath(
        Environment.SpecialFolder.MyDocuments) +
        @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
    ServerDocument serverDocument1 = null;
    
  9. Dodaj następujący kod do Main metoda po kodzie dodane w poprzednim kroku.Ten kod wykonuje następujące zadania:

    • Wypełnia obiektu dataset wpisane przy użyciu karty tabeli.

    • Używa CachedData właściwość ServerDocument klasy, aby uzyskać dostęp buforowanego zestawu danych w skoroszycie.

    • Używa SerializeDataInstance metoda zapełnić buforowanego zestawu danych z danych z lokalnych danych wpisywanych.

    Try
        productTableAdapter.Fill(productDataSet.Product)
        Console.WriteLine("The local dataset is filled.")
    
        serverDocument1 = New ServerDocument(workbookPath)
        Dim dataHostItem1 As CachedDataHostItem = _
            serverDocument1.CachedData.HostItems("AdventureWorksReport.Sheet1")
        Dim dataItem1 As CachedDataItem = dataHostItem1.CachedData("AdventureWorksLTDataSet")
    
        ' Initialize the worksheet dataset with the local dataset. 
        If dataItem1 IsNot Nothing Then
            dataItem1.SerializeDataInstance(productDataSet)
            serverDocument1.Save()
            Console.WriteLine("The data is saved to the data cache.")
        Else
            Console.WriteLine("The data object is not found in the data cache.")
        End If 
    Catch ex As System.Data.SqlClient.SqlException
        Console.WriteLine(ex.Message)
    Catch ex As System.IO.FileNotFoundException
        Console.WriteLine("The specified workbook does not exist.")
    Finally 
        If Not (serverDocument1 Is Nothing) Then
            serverDocument1.Close()
        End If
        Console.WriteLine(vbLf & vbLf & "Press Enter to close the application.")
        Console.ReadLine()
    End Try
    
    try
    {
        productTableAdapter.Fill(productDataSet.Product);
        Console.WriteLine("The local dataset is filled.");
    
        serverDocument1 = new ServerDocument(workbookPath);
        CachedDataHostItem dataHostItem1 =
            serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
        CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];
    
        // Initialize the worksheet dataset with the local dataset. 
        if (dataItem1 != null)
        {
            dataItem1.SerializeDataInstance(productDataSet);
            serverDocument1.Save();
            Console.WriteLine("The data is saved to the data cache.");
            Console.ReadLine();
        }
        else
        {
            Console.WriteLine("The data object is not found in the data cache.");
        }
    }
    catch (System.Data.SqlClient.SqlException ex)
    {
        Console.WriteLine(ex.Message);
    }
    catch (System.IO.FileNotFoundException)
    {
        Console.WriteLine("The specified workbook does not exist.");
    }
    finally
    {
        if (serverDocument1 != null)
        {
            serverDocument1.Close();
        }
    
        Console.WriteLine("\n\nPress Enter to close the application.");
        Console.ReadLine();
    }
    
  10. W Solution Explorer, kliknij prawym przyciskiem myszy DataWriter project, wskaż polecenie program Debug: polecenie, a następnie kliknij przycisk uruchomić nowe wystąpienie.

    Zostanie zbudowany i aplikacji konsoli wyświetla kilka komunikatów o stanie, gdy wypełnione zostaje lokalnego zestawu danych i gdy aplikacja zapisuje dane buforowany zestaw danych w skoroszycie.Naciśnij klawisz ENTER, aby zamknąć aplikację.

Testowanie skoroszytu

Podczas otwierania skoroszytu, ListObject teraz wyświetlane dane, który został dodany do buforowanego zestawu danych przy użyciu aplikacji konsoli.

Aby przetestować skoroszytu

  1. Zamknij skoroszyt AdventureWorksReport w projektancie programu Visual Studio, jeśli jest jeszcze otwarte.

  2. W Eksploratorze pliku, otwórz skoroszyt AdventureWorksReport, który znajduje się w folderze kompilacji z AdventureWorksReport projektu.Domyślnie folder kompilacji znajduje się w jednej z następujących lokalizacji:

    • %UserProfile%\My Documents\AdventureWorksReport\bin\Debug (dla systemu Windows XP i wcześniejsze)

    • %USERPROFILE%\Documents\AdventureWorksReport\bin\Debug (dla systemu Windows Vista)

  3. Sprawdź, czy ListObject jest wypełniany danymi, po otwarciu skoroszytu.

Następne kroki

Więcej o pracy z buforowanych danych z tych tematów można uzyskać:

Zobacz też

Zadania

Wskazówki: zmiana danych z pamięci podręcznej ze skoroszytu na serwerze

Koncepcje

Łączenie z danymi w aplikacjach formularzy systemu Windows