共用方式為


ServerDocument 類別 (2003 系統)

提供 Microsoft Office Word 文件或 Microsoft Office Excel 活頁簿中已快取之資料和應用程式資訊清單的存取。

命名空間:  Microsoft.VisualStudio.Tools.Applications.Runtime
組件:  Microsoft.VisualStudio.Tools.Applications.Runtime (在 Microsoft.VisualStudio.Tools.Applications.Runtime.dll 中)

語法

'宣告
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class ServerDocument _
    Implements IDisposable
'用途
Dim instance As ServerDocument
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class ServerDocument : IDisposable

備註

ServerDocument 類別有兩個主要用途:

  • 可讓您存取文件中的快取資料和應用程式資訊清單,而不需要啟動 Word 或 Excel。

  • 可讓您以程式設計方式附加或移除自訂組件。

若要存取文件中的快取資料或應用程式資訊清單,首先必須將該文件傳遞給其中一個 ServerDocument 建構函式,以建立 ServerDocument 物件。您可以接著使用 CachedData 屬性存取快取資料,並使用 AppManifest 屬性存取應用程式資訊清單。應用程式資訊清單會提供附加至文件之自訂組件的相關資訊。如需詳細資訊,請參閱 Office 方案中的應用程式和部署資訊清單

若要加入或移除自訂,請使用靜態 AddCustomizationRemoveCustomization 方法。當文件不在開發電腦上,而您想要加入或移除自訂時,這些方法十分有用。由於這些方法會啟動 Word 和 Excel 以加入或移除自訂,因此只有在電腦已安裝 Word 或 Excel 時,您才可以呼叫這些方法。

選擇要使用的建構函式

有兩組 ServerDocument 建構函式:

  • 一組可用來存取已在記憶體中開啟的文件。

  • 一組可用來存取磁碟上的文件。

存取記憶體中的文件

若要存取已在記憶體中開啟的文件,請使用下列其中一個建構函式:

這些建構函式可接受表示記憶體中之文件的位元組陣列或 Stream。如果您要修改文件中的快取資料或應用程式資訊清單,然後再使用 HTTP 通訊協定將文件資料流處理至目的端,後者會相當實用。若要使用這些建構函式,文件必須已經有 Visual Studio Tools for Office 自訂,否則建構函式會擲回 CannotLoadManifestException 例外狀況。

存取磁碟上的文件

若要存取磁碟上的文件,請使用下列其中一個建構函式:

這些建構函式可接受要開啟之文件的完整路徑。文件必須已經有 Visual Studio Tools for Office 自訂。

根據預設,文件是利用讀取/寫入存取權開啟的。如果您要以唯讀或唯寫存取權開啟文件,請使用具有 FileAccess 參數的建構函式。

如果您想要開啟尚未有 Visual Studio Tools for Office 自訂的文件,請使用具有布林值 onClient 參數的建構函式。如果您將這個參數設定為 true,Visual Studio Tools for Office 執行階段就會在文件中建立空的 Runtime Storage Control。如果您想要將快取資料加入至還沒有自訂的文件,這會非常有用。由於 Visual Studio Tools for Office 執行階段會啟動 Word 或 Excel 以建立 Runtime Storage Control,因此用戶端電腦必須已安裝 Word 或 Excel,您才可以呼叫 ServerDocument 建構函式。如需 Runtime Storage Control 的詳細資訊,請參閱 Runtime Storage Control 概觀

範例

下列程式碼範例會建立新的 ServerDocument,載入指定的文件,然後顯示文件資料快取中所有物件的名稱。這個範例需要 Microsoft.VisualStudio.Tools.Applications.Runtime.dll 組件的參考,所以請在您程式碼檔案的頂端以 Imports (適用於 Visual Basic) 或 using (適用於 C#) 陳述式,加入 Microsoft.VisualStudio.Tools.Applications.Runtime 命名空間。

Private Sub CreateServerDocumentOnClient(ByVal fileName As String)
    If ServerDocument.IsCustomized(fileName) Then
        Dim serverDocument1 As ServerDocument = Nothing
        Try
            serverDocument1 = New ServerDocument(fileName, True)
            Dim stringBuilder1 As New System.Text.StringBuilder()

            ' Display all of the cached data items 
            ' in the document.
            Dim hostItem1 As CachedDataHostItem
            For Each hostItem1 In serverDocument1.CachedData.HostItems
                stringBuilder1.Append(vbLf + "Namespace and class: ")
                stringBuilder1.Append(hostItem1.Id + vbLf)
                Dim dataItem1 As CachedDataItem
                For Each dataItem1 In hostItem1.CachedData
                    stringBuilder1.Append("     Data item: ")
                    stringBuilder1.Append(dataItem1.Id + vbLf)
                Next dataItem1
            Next hostItem1
            MsgBox(stringBuilder1.ToString())
        Finally
            If Not serverDocument1 Is Nothing Then
                serverDocument1.Close()
            End If
        End Try
    Else
        MsgBox("The specified document is not " + _
            "customized.")
    End If
End Sub
private void CreateServerDocumentOnClient(string fileName)
{
    if (ServerDocument.IsCustomized(fileName))
    {
        ServerDocument serverDocument1 = null;
        try
        {
            serverDocument1 = new ServerDocument(fileName,
                true);
            System.Text.StringBuilder stringBuilder1 =
                new System.Text.StringBuilder();

            // Display all of the cached data items 
            // in the document.
            foreach (CachedDataHostItem hostItem1 in
                serverDocument1.CachedData.HostItems)
            {
                stringBuilder1.Append("\nNamespace and class: ");
                stringBuilder1.Append(hostItem1.Id + "\n");
                foreach (CachedDataItem dataItem1 in
                    hostItem1.CachedData)
                {
                    stringBuilder1.Append("     Data item: ");
                    stringBuilder1.Append(dataItem1.Id + "\n");
                }
            }
            MessageBox.Show(stringBuilder1.ToString());
        }
        finally
        {
            if (serverDocument1 != null)
                serverDocument1.Close();
        }
    }
    else
    {
        MessageBox.Show("The specified document is not " +
            "customized.");
    }
}

繼承階層架構

System. . :: .Object
  Microsoft.VisualStudio.Tools.Applications.Runtime..::.ServerDocument

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

ServerDocument 成員

Microsoft.VisualStudio.Tools.Applications.Runtime 命名空間

其他資源

存取伺服器文件中的資料

HOW TO:將資料插入伺服器上的活頁簿中

HOW TO:從伺服器的活頁簿中擷取快取資料

HOW TO:變更伺服器活頁簿中的快取資料