DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Wordファイルを直接ダウンロード

環境/言語:[.Net 4.0, VisualStudio2012, VB.net]
分類:[ASP.NET]

はじめまして

例えばプログラム中でWordファイルを作るとき以下のように書きますが、
できたWord.Documentをファイルとして保存せず、そのまま直接ダウンロードさせたい場合、作成処理の後どのようにすれば良いのでしょうか
csvとかならバイト配列にしますが…(Word.Documentにそれらしいメソッドがない?)

Imports Word = Microsoft.Office.Interop.Word
Imports Office = Microsoft.Office.Core
Imports Microsoft.Office.Interop

Dim wordApp As Word.Application = New Word.Application
Dim wordDoc As Word.Document

以下、作成処理

以下ダウンロード


以上、よろしくお願いします
■No32831に返信(ひゅーまつさんの記事)

提示されたコードはサーバーでは使ってはダメです。
■No32832に返信(shuさんの記事)
> ■No32831に返信(ひゅーまつさんの記事)
>
> 提示されたコードはサーバーでは使ってはダメです。

代わりになるコードはありますでしょうか?
■No32831に返信(ひゅーまつさんの記事)
> 例えばプログラム中でWordファイルを作るとき以下のように書きますが、

既に指摘されているように、サーバー上で無人実行する場合には、
そのコードは使えません。(技術的な問題とライセンス上の問題から)

あくまでも、クライアント上(ユーザーが操作する画面)で
実行する場合に使われるコードだと思ってください。

詳細は下記参照。
『サーバーサイド オートメーションの代替策』についても記載されています。
http://support.microsoft.com/kb/257757


> できたWord.Documentをファイルとして保存せず、そのまま直接ダウンロードさせたい場合、作成処理の後どのようにすれば良いのでしょうか
過去にこういった方法が紹介されています。
http://dobon.net/vb/bbs/log3-40/24044.html

とはいえ、そもそも Office オートメーションをサーバーサイドで使うことは、
先述の理由から推奨されないので、どちらにせよ NG ですけれども。
■No32833に返信(ひゅーまつさんの記事)
> ■No32832に返信(shuさんの記事)
>>■No32831に返信(ひゅーまつさんの記事)
>>
>>提示されたコードはサーバーでは使ってはダメです。
>
> 代わりになるコードはありますでしょうか?

クライアント側のアプリとして実装しテンプレートだけサーバーから
ダウンロードするなど。
あとはPOIを使うというのがあると思いますが、つかったことがないので
詳細はよく分かりません。

DOBON.NET | プログラミング道 | プログラミング掲示板