• 締切済み

ASPからEXCELファイルの設定を変更する方法を 教えて下さい。

ASPファイルで表示したデータをEXCELファイルに はきだす、プログラムを作成しました。 はきだす、文字列が長いと、セル内に「####」と いう文字が表示されます。 この現象を回避する ために、EXCELファイルを作成し、データをはきだ す時に、セルのプロパティ(幅)を設定したいです。 このような事は、可能なのでしょうか?また、可能ならば 方法をご教授願います。 よろしくお願いします。

みんなの回答

  • mann555
  • ベストアンサー率46% (29/62)
回答No.3

例えば、先に書いたSampleがExcel.aspだったとして ダウンロード用のページに 下記のようにリンクタグを入れれば ダウンロード出来ます。 <A HREF="Excel.asp">Down load file</A>

  • mann555
  • ベストアンサー率46% (29/62)
回答No.2

補足されているソースからみるとCSV形式ですね。 CSV形式だと無理です。 Excel97sr1以降であればHtml形式でも読み込めますので Tableとしてはき出すという手もあります。 Nowrapを付ければセル幅があうかと。 style sheetも使えますのでセル毎に色の設定も出来ます。 以下Sampleです ------------------------------------------------ strSendText = "<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">" strSendText = strSendText & "<head>" strSendText = strSendText & "<!--[if gte mso 9]><xml><x:ExcelWorkbook>" strSendText = strSendText & "<x:ExcelWorksheets>" strSendText = strSendText & " <x:ExcelWorksheet>" strSendText = strSendText & " <x:Name>Sheet Name</x:Name>" strSendText = strSendText & " <x:WorksheetOptions>" '<x:DoNotDisplayGridlines/> strSendText = strSendText & " <x:Selected/>" strSendText = strSendText & " <x:FrozenNoSplit/>" strSendText = strSendText & " <x:SplitHorizontal>1</x:SplitHorizontal>" strSendText = strSendText & " <x:TopRowBottomPane>1</x:TopRowBottomPane>" strSendText = strSendText & " </x:WorksheetOptions>" strSendText = strSendText & " </x:ExcelWorksheet>" strSendText = strSendText & "</x:ExcelWorksheets></x:ExcelWorkbook>" strSendText = strSendText & "</xml><![endif]--></head>" strSendText = strSendText & "<META http-equiv=""Content-type"" content=""text/html; charset=SHIFT_JIS"">" strSendText = strSendText & "<body>" With Response .ContentType = "text/plain" .AddHeader "Content-Disposition", "attachment;filename=test.xls" .Write strSendText .Write "<TABLE>" .Write "<THEAD><TR><TD>No.</TD><TD>起票日</TD><TD>名前</TD></TR></THEAD>" .Write "</TABLE>" .Write "</body></html>" .End end With ------------------------------------------------

yabaiy
質問者

補足

みなさま、色々なご回答ありがとうございます。 私も、テーブルを作り「htmlファイル」をエクセル開く 方法が現実的な解決策だと思います。 だが、クライアントPCにそのファイルをダウンロード させたいのです。色々調べたのですが、htmlファイルを ダウンロードする方法を発見できません。 ASPを使って います。 htmlファイルをダウンロードする方法を教えて下さい。 おねがいします。 

  • hequil
  • ベストアンサー率65% (242/372)
回答No.1

CreateObjcet("Excel.Application") 経由で xlsファイルを作成しているならVBAと同じく .ColumnWidth = 幅 .EntireColumn.AutoFit あたりで設定可能です。

yabaiy
質問者

補足

ご回答ありがとうございます。 以下のステート メントで行っております。 この場合どの様にしたら良いのでしょうか? Response.ContentType="application/vnd.ms-excel" Response.AddHeader "Content-Disposition" , " attachment; filename= test.xls" Response.Write "No." & vbtab Response.Write "起票日" & vbtab Response.Write "名前" & vbNewLine

関連するQ&A

  • excelファイルをASPで作る方法

    ASPでホームページを作っています。 クライアントが、ある表を表示するホームページを見るとサーバー側に表示されている表と同じエクセルファイルを 作成させたいです。 そして、そのファイルにアンカー タグを張ったページから、エクセルファイルをダウンロードさせたいのです。 注意)エクセルファイルは、CSVではなく純粋なエクセルファイル(vbsでセル幅を変更できる)です。 どなたか、アドバイスをよろしくお願いします。

  • Excel(csv) で入力した文字が日付になってしまいます。

    Excel(csv)で住所を管理しています。 一つのセルに1-1-1のように入力をし、 次回そのファイルを開くと2001/1/1と表示され、 セルの書式設定の表示形式をみると日付になっています。 文字列にしてみても、36892というような 数字にしかならず、元の打ったデータがなんだったか わからなくなってしまいます。 なんとかこの現象を回避する方法はありますでしょうか? よろしくお願いします。

  • CSVファイルの扱い

    教えてください。 CSVファイルをExcelで開く時の問題点です。CSVファイルの中に「00050」と言うような文字列が存在しています。ところがExcelでこれを開くと数値と認識してしまい、「50」と表示されてしまいます。これをExcelのセルのプロパティ等でセルの書式を文字列としても既にExcelにインポートされてしまったデータは「50」としか表示がされません。 「00050」として表示するための何か方法はないのでしょうか? みなさんよろしくお願いします。

  • Excelで指数表現しないようにする方法

    こんにちは。 csvファイルに 10E098 という文字列がある場合、 このファイルをダブルクリックしてExcelで表示すると 1.00E+99 のように指数形式で表示されてしまいます。 (セルのプロパティも「指数」になっています) そのまま 10E098 という文字列で表示するようにしたいのですが どのようにすればよいのでしょうか? ちなみに、該当のセルの表示形式を「標準」にしても「文字列」に しても 1E+99 と表示されてしまって出来ませんでした。 よろしくお願いいたします。

  • マクロ付きEXCELファイルがASPで操作できない

    初めて質問いたします。 ASPとVBAを使い、SQLサーバより取得したデータをサーバのEXCELファイルに挿入し、グラフを作成。 さらにグラフをgif化し、それをクライアントに表示するというシステムを作成したいのですが、EXCEL2000の場合のみマクロ付きのEXCELファイルをopenしたり、マクロを呼び出したりしようとすると、画面がかたまってしまいます。 最初は見えないところで「マクロを有効にする」などのメッセージがでているのかと思い、デジタル署名などを行ってみたのですが、ASPからVBAのマクロを呼び出すことができませんでした。 EXCEL97がはいっているサーバで試したところうまくいったのですが、EXCEL2000の場合のみうまくいきません。 環境は、 サーバ側:Windows2000+IIS5.0+office2000 クライアント側:IE5.0 です。 以下にソースを記します。 http://www.geocities.co.jp/SiliconValley-Cupertino/8836/sample.html 原因及び回避方法がわかる方どうぞ力をお貸しください。よろしくお願いします。

  • ASPにおいてExcelバージョンの判断方法

    ASPにおいてExcel出力を行う処理があるのですが、 Excel2003で出力すると文字列として表示した数値(例:02) があるセルの左上にエラーとしてマークがついてしまいます。 ちなみにExcel2000ではこのようなことはおきません。 (1)2003ではツール→オプション→エラーチェックにある 「文字列として登録されている数値」のチェックボックスをFalse にすればよいみたいなのでソース上に(1)の処理を入れると 今度は2000の場合に動かなくなります。 そこでExcelのバージョンが2000か2003であるかを 判断して2003の場合のみ(1)の処理を行わせたいのですが、 どうしたらいいでしょうか?? ※アクセスする端末によってExcelのバージョンは違います。予想としてはレジストリが関連するのではないかと思うのですが。。。もし、Excelが2つ入っている場合などがちょっと心配ではあります。自動的に最後に使用したアプリケーションのバージョンとなるのでしょうか?? 以上、ご教授よろしくお願いします!!!!

  • ASPでCSVファイル作成

    ASP初心者です。 ASPでDBの検索結果をCSVファイルとしてダウンロードするプログラムを作成したいと考えております。 過去ログの検索で同じようなことを考えている方がいらっしゃったので、参考にさせていただいたのですが、どうもうまくいきません。 ちなみに「QNo.114813 ASPでCSVファイルを作成しダウンロードさせる」を参考にさせていただきました。 うまくいかない点は、ダウンロードすると全てのデータが1つのセル内に入ってしまいます。改行もされません。 解決策がわからないので助けて下さい。 よろしくお願いします。

  • VC++6.0 オートメーションでExcelに書き込めない文字列が存在する?

    こんにちは。 VC++6.0 を使用したオートメーション処理にて、 Excelファイルのセルに文字列を書き込む処理を 行っています。 しかし、ある特定の文字列※を書き込んだ際に、 Runtime Errorが表示され、プログラムが強制終了 してしまいました。 エラーが発生したのは、Rangeオブジェクトのvalue2プロパティです。 このプロパティに、特定の文字列を入力すると、エラーが発生するようなのです。 対処として、その特定文字列を書き込む直前に、 Excelのセルの書式設定のうち、「表示形式」を「標準」→「文字列」にしたところ、問題なく書き込めました。 質問 1.Excelの「表示形式」の「標準」と「文字列」は、具体的にどのような違いがあるのでしょうか。 2.なぜ書き込めないのでしょうか。仕様なのでしょうか。 その辺りのヘルプがないので、ヘルプの場所をご存知の方がおられましたら、ご教授願います。 ※特定文字列とは、JISコード以外の文字列です。 実際には、文字化けしていると思われます。 環境:Windows XP SP2 Excel2002, 2003

  • エクセル 画面表示拡大率によってセルの幅が変る

    エクセル2003です。 列の幅を自動調整した場合、画面表示の拡大率によってその列の幅が変ってしまいます。 例えば、100%表示では55ピクセルであった列が、50%表示では64ピクセルになってしまいます。 該当列のセルの書式-配置-文字の制御には何もチェックは入っていません。 このような現象はエクセルの「仕様」で一般的なことなのでしょうか。それとも私の設定のどこかにこのような現象を引き起こす原因があるのでしょうか?

  • ExcelでCVSファイルの文字列を変換。

    初めまして。 CVSを開くとデータは「123」と表示されるのですが、メモ帳などからCVSファイルを開くと「0123」と文字列になってます。 EXCELファイル上で開くと「123」と数値になってしまって困ってます。これを、「0123」と文字列にしたいのですがどうしたらいいですか?? EXCELでA列を「0123」、「025」と番号を文字列に表示してB列に名前、C列には数値にしたのですがどう処理すればいいかわかりません。。。。 EXCEL VBAで処理するしかないのですか?? プログラムにはあまり自信がないです。。。 もし、EXCEL VBAで処理する方法があるなら参考などを教えてくれませんか?? よろしくお願いします。

専門家に質問してみよう