QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

ASPでのExcel出力&ダウンロード

はじめまして!

今度、社内のASP(.NETでない)で作成されたシステムの機能追加をすることになりました。
要件は、表示された検索結果をExcelファイルにダウンロードすることです。
いろいろ調べて、とりあえず作成できたのですが、問題が1件発生しています。
データ(備考)の中には、改行で整形しているものがあり、以下のソースだと、
改行が空白に変わってしまい、折角の整形したものが見づらくなってしまいました。注1)

<%
  RESPONSE.BUFFER=TRUE
  RESPONSE.ContentType = "application/vnd.ms-excel"
  RESPONSE.Charset = "shift_jis"
  RESPONSE.AddHeader "Content-Disposition","attachment; filename=EXCEL1.xls"
   :
  Rs.Open "SELECT ......", Conn, adOpenStatic, adLockReadOnly
  RCnt = Rs.RecordCount
  FCnt = Rs.Fields.Count

  RESPONSE.WRITE ""
'--->列名設定
  RESPONSE.WRITE ""
  FOR L = 0 TO FCnt-1
    RESPONSE.WRITE ""
    RESPONSE.WRITE "" & RS.Fields(L).NAME & ""
    RESPONSE.WRITE ""
  NEXT
  RESPONSE.WRITE ""
'--->データ設定
  for L = 1 TO RCnt
  RESPONSE.WRITE ""
  for I = 0 TO FCnt-1
    RESPONSE.WRITE ""
' 注1) RESPONSE.WRITE RS(I).VALUE
    │REC = RS(I).VALUE
 注2)│if REC <> "" then
    │ RESPONSE.WRITE REPLACE(REC, vbCrLf, "")
    │else
    │ RESPONSE.WRITE " "
    │end if
    RESPONSE.WRITE ""
  next
    RS.MOVENEXT
    RESPONSE.WRITE ""
  next
  RESPONSE.WRITE ""
  RESPONSE.FLUSH
  RESPONSE.END
  RS.CLOSE
  Conn.CLOSE
%>
そこで、注2)にように、改行を変換したのですが、今度は改行毎に行数が増えてしまいました。
通常のExcelみたいに、1つのセルの中で改行したいのですが.....

なお、WWWサーバにはOfficeが入っていないため、CreateObjectでサーバ側にExcelを作成/処理することが
できません。(この方法は、良くないと聞いていますので.....)

対処方法や、別の方法での解決案をご存知であれば、教えて頂けないでしょうか?
よろしくお願い致します。

質問者:SHIMA

回答

todo殿

早速の返答ありがとうございました。
検索の方法が悪かったのですね!

回答のあったurlの「http://www.ken3/asp/asp079.html」を参考にし、
RESPONSE.WRITE REPLACE(REC, vbCrLf, "")
 ↓
RESPONSE.WRITE REPLACE(REC, vbCrLf, "")
に変更すると、解消できました。
ちょっと「mso」について学習したいと思います。

どうもありがとうございました。<(_ _)>

投稿者:SHIMA

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。