Gewusst wie: Einfügen von Daten in Dokumente, ohne auf den Datenträger zu schreiben
Aktualisiert: November 2007
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
Sie können Daten in ein Visual Studio Tools for Office-Projektmappendokument 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.
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 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(); } }
Ü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.
Ein Microsoft Office Word-Dokument mit dem Namen WordApplication3.doc, das über einen Datencache verfügt und sich im Ordner C:\Dokumente befindet.
Einrichten des ASP.NET-Projekts
Das ASP.NET-Projekt muss über einen Verweis auf eine der folgenden Assemblys verfügen:
Fügen Sie für Word 2007 einen Verweis auf Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll hinzu.
Fügen Sie für Word 2003 einen Verweis auf Microsoft.VisualStudio.Tools.Applications.Runtime.dll hinzu.
Die Codedatei, in die Sie das Codebeispiel kopieren, muss eine Imports-Anweisung (in Visual Basic) bzw. eine using-Anweisung (in C#) für einen der folgenden Namespaces aufweisen:
Fügen Sie für Word 2007 eine Imports-Anweisung bzw. eine using-Anweisung für den Microsoft.VisualStudio.Tools.Applications-Namespace hinzu.
Fügen Sie für Word 2003 eine Imports-Anweisung bzw. eine using-Anweisung für den Microsoft.VisualStudio.Tools.Applications.Runtime-Namespace hinzu.
Hinweis:
Visual Studio Tools for Office stellt verschiedene Versionen der ServerDocument-Klasse und der zwischengespeicherten Datenklassen für die Office-Versionen 2007 System und 2003 System bereit. Weitere Informationen finden Sie unter Verwalten von Dokumenten auf einem Server mit der ServerDocument-Klasse.
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