HOW TO:在文件中插入資料而不寫入磁碟
您可以將資料插入至記憶體中的 Office 方案文件,如此資料便不會寫入硬碟。 如果需要使用 HTTP 通訊協定 (Protocol),將文件以位元組陣列的形式傳送給使用者,您可以使用這項功能直接修改位元組陣列中的資料,而不需要建立暫存檔案並在其中修改資料。
**適用於:**本主題中的資訊適用於 Word 2007 和 Word 2010 的文件層級專案。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
若要將資料插入至文件
將文件以位元組陣列的形式載入至記憶體。
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(); } }
將位元組陣列傳遞至伺服器端物件模組 (而非檔名),然後對資料進行管理。
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();
將文件傳送給使用者,並關閉 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 文件。