方法 : ディスクに書き込まずにドキュメントにデータを挿入する
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
ハード ディスクにデータを書き込むのではなく、メモリ内の Visual Studio Tools for Office ソリューションのドキュメントにデータを挿入できます。HTTP プロトコルを使用してドキュメントをバイト配列として送信する必要がある場合、データを変更するために一時ファイルを作成する代わりに、この機能を使用してバイト配列のデータを直接変更できます。
ドキュメントにデータを挿入するには
ドキュメントをバイト配列としてメモリに読み込みます。
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 プロジェクト。
データ キャッシュを含む、WordApplication3.doc という名前の Microsoft Office Word 文書 (C:\Documents フォルダにあります)。
ASP.NET プロジェクトのセットアップ
ASP.NET プロジェクトには、次のいずれかのアセンブリへの参照が必要です。
Word 2007 では、Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll への参照を追加します。
Word 2003 では、Microsoft.VisualStudio.Tools.Applications.Runtime.dll への参照を追加します。
コード例をコピーするコード ファイルには、次のいずれかの名前空間を指定する Imports ステートメント (Visual Basic の場合) または using ステートメント (C# の場合) が必要です。
Word 2007 では、Microsoft.VisualStudio.Tools.Applications 名前空間を指定する Imports ステートメントまたは using ステートメントを追加します。
Word 2003 では、Microsoft.VisualStudio.Tools.Applications.Runtime 名前空間を指定する Imports ステートメントまたは using ステートメントを追加します。
メモ : Visual Studio Tools for Office には、2007 システムと 2003 システムについて、ServerDocument クラスおよびキャッシュ データ クラスの異なるバージョンが用意されています。詳細については、「ServerDocument クラスによるサーバー上のドキュメントの管理」を参照してください。
参照
処理手順
方法 : サーバー上のブックからキャッシュされたデータを取得する
方法 : サーバー上のブックでキャッシュされたデータを変更する