Freigeben über


Gewusst wie: Einfügen von Daten in Dokumente, ohne auf den Datenträger zu schreiben

Sie können Daten in das Dokument einer Office-Lösung im Arbeitsspeicher einfügen und auf diese Weise vermeiden, dass die Daten auf die Festplatte geschrieben werden. Wenn Sie ein Dokument als Bytearray über das HTTP-Protokoll an einen Benutzer senden müssen, können Sie dieses Feature zum direkten Ändern der Daten im Bytearray verwenden und müssen hierfür keine temporäre Datei erstellen.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für Word 2007 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

So fügen Sie Daten in ein Dokument ein

  1. Laden Sie das Dokument als Bytearray in den Arbeitsspeicher.

    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. Übergeben Sie das Bytearray statt eines Dateinamens an das serverseitige Objektmodell, und bearbeiten Sie dann die Daten.

    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. Senden Sie das Dokument an den Endbenutzer, und schließen Sie das 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();
        }
    }
    

Kompilieren des Codes

Für dieses Beispiel ist Folgendes erforderlich:

  • Ein ASP.NET-Projekt, das den Beispielcode enthält. Das Projekt muss die folgende Konfiguration aufweisen:

    • Es muss einen Verweis auf die Assembly Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll (wenn das Projekt auf .NET Framework 4 abzielt) oder auf die Assembly Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll enthalten (wenn das Projekt auf .NET Framework 3.5 abzielt).

    • Die Codedatei, in die Sie das Codebeispiel kopieren, muss eine Imports-Anweisung (in Visual Basic) bzw. eine using-Anweisung (in C#) für den Microsoft.VisualStudio.Tools.Applications-Namespace aufweisen.

  • Ein Microsoft Office Word-Dokument mit dem Namen WordApplication3.doc, das über einen Datencache verfügt und sich im Ordner C:\Dokumente befindet.

Siehe auch

Aufgaben

Gewusst wie: Einfügen von Daten in eine Arbeitsmappe auf einem Server

Gewusst wie: Abrufen von zwischengespeicherten Daten aus einer Arbeitsmappe auf einem Server

Gewusst wie: Ändern zwischengespeicherter Daten in einer Arbeitsmappe auf einem Server

Konzepte

Zugreifen auf Daten in Dokumenten auf dem Server