共用方式為


HOW TO:在文件中插入資料而不寫入磁碟

您可以將資料插入至記憶體中的 Office 方案文件,如此資料便不會寫入硬碟。 如果需要使用 HTTP 通訊協定 (Protocol),將文件以位元組陣列的形式傳送給使用者,您可以使用這項功能直接修改位元組陣列中的資料,而不需要建立暫存檔案並在其中修改資料。

**適用於:**本主題中的資訊適用於 Word 2007 和 Word 2010 的文件層級專案。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

若要將資料插入至文件

  1. 將文件以位元組陣列的形式載入至記憶體。

    Dim name As String = "C:\Documents\WordApplication3.doc"
    Dim fileStream As System.IO.FileStream = Nothing
    Dim bytes() As Byte = Nothing
    
    Try
        fileStream = New System.IO.FileStream( _
            name, System.IO.FileMode.Open, System.IO.FileAccess.Read)
        ReDim bytes(fileStream.Length)
        fileStream.Read(bytes, 0, fileStream.Length)
    
    Finally
        If Not fileStream Is Nothing Then
            fileStream.Close()
        End If
    End Try
    
    string name = @"C:\Documents\WordApplication3.doc";
    System.IO.FileStream fileStream = null;
    byte[] bytes = null;
    
    try
    {
        fileStream = new System.IO.FileStream(
            name, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        bytes = new byte[(int)fileStream.Length];
        fileStream.Read(bytes, 0, (int)fileStream.Length);
    }
    finally
    {
        if (fileStream != null)
        {
            fileStream.Close();
        }
    }
    
  2. 將位元組陣列傳遞至伺服器端物件模組 (而非檔名),然後對資料進行管理。

    Dim sd1 As ServerDocument = Nothing
    Try
        sd1 = New ServerDocument(bytes, name)
    
        ' Your data manipulation code goes here. 
    
        sd1.Save()
    
    ServerDocument sd1 = null;
    try
    {
        sd1 = new ServerDocument(bytes, name);
    
        // Your data manipulation code goes here. 
    
        sd1.Save();
    
  3. 將文件傳送給使用者,並關閉 ServerDocument

        ' If you have a Word document, use the MIME string:
        Response.ContentType = "application/msword"
    
        ' If you have an Excel workbook, use the MIME string:
        'Response.ContentType = "application/vnd.ms-excel"
    
        Response.AddHeader("Content-disposition", "filename=" + name)
        Response.BinaryWrite(sd1.Document)
    
    Finally
        If Not sd1 Is Nothing Then
            sd1.Close()
        End If
    End Try
    
        // If you have a Word document, use the MIME string:
        Response.ContentType = "application/msword";
    
        // If you have an Excel workbook, use the MIME string:
        //Response.ContentType = "application/vnd.ms-excel";
    
        Response.AddHeader("Content-disposition", "filename=" + name);
        Response.BinaryWrite(sd1.Document);
    }
    finally
    {
        if (sd1 != null)
        {
            sd1.Close();
        }
    }
    

編譯程式碼

這個範例需要:

  • 含有範例程式碼的 ASP.NET 專案。 專案必須含有下列組態:

    • 專案必須有 Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll 組件 (如果專案以 .NET Framework 4 為目標) 或 Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll 組件 (如果專案以 .NET Framework 3.5 為目標) 的參考。

    • 您在其中貼上複製之程式碼範例的程式碼檔案必須有一個適用於 Microsoft.VisualStudio.Tools.Applications 的 Imports (在 Visual Basic 中) 或 using (在 C# 中) 陳述式。

  • 名為 WordApplication3.doc、含有資料快取且位於資料夾 C:\Documents 中的 Microsoft Office Word 文件。

請參閱

工作

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

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

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

概念

存取伺服器文件中的資料