Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
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 Trystring 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(); } }Ü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();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