2009-05-05 3 views
1

インターネットには、この種のことをする多くの例があります。しかし、いずれもFirefoxで動作しません。だから私はスタックオーバーフローのユーザーのための挑戦を設定すると思った。テーブルの内容やSQLクエリの結果をASPページからクリップボードに送信するにはどうすればよいですか?

基本的には、ページのユーザーがクエリの結果をクリップボードに取り込んでExcelに貼り付けることができるように、非常に使いやすい方法が必要です。

それはどちらかのHTMLテーブルからデータを取得することができます(クエリによって生成される)

または(Excelで読めるフォーマットで)クリップボードに直接結果を送信

私はとのイントラネットを持っています多くのASPページ。それらのうちのいくつかは非常に大きなテーブルを生成し、その一部はExcelにコピーされます。現在、ユーザは左上のセルの内側をクリックし、次にページを下にスクロールし、カーソルをテーブルの端から外す必要があります。彼らがこれを正しく(Firefoxでは)正しく実行しないと、データが正しく読み込まれません。

ボタンをクリックするだけで、Excel、セルa1、ctrl-vの順にクリックすると便利です。データは、列と行に正しく区切られて表示されます(書式は関係ありません)

アイデアはありますか?

私はASPまたはJavascriptの方法にオープンしています。そして、それは私が返事から、最も単純なオプションを選択した

(3)

EDIT IEとFirefoxの両方で動作する必要があります(私は、最も簡単なようになります「ん」するページがたくさんあること最高。フォームで

...後で上のコードで

Send results to excel <input type="checkbox" name="sendtoexcel"> 

...

if request.querystring("sendtoexcel") = "on" then 

response.contenttype = "application/vnd.ms-excel" 
Response.AddHeader "content-disposition","attachment; filename=fname.xls" 

end if 

答えて

2

まず、Excelはhtmlテーブルオブジェクトのコピー/ペーストを強力にサポートしています。それがあなたのニーズに合っているかどうかを確認する必要があります。

それ以外の場合は、データのCSVファイルをASPから直接ユーザーに送信することをおすすめします。

私はこれをテストしていませんが、それはあなたがそこに道の一部を取得する必要があります:

<% 
Response.AddHeader "Content-Type", "application/octet-stream" 
Response.AddHeader "Content-Disposition", "attachment; filename=myTable.csv" 

Dim customers, c 
customers = GetCustomerFromDb() 

For Each c in customers 
    Response.Write """" & c("Name") & """," 
    Response.Write """" & c("Email") & """," 
    Response.Write """" & c("Address") & """," 
    Response.Write """" & c("City") & """," 
    Response.Write vbCrLf 
Next 
%> 

あなたがしたいと思うあなたは、あなたのインターフェイスで、このコードを使用して新しいページを作成していますCSVをダウンロードするこのページへのリンクがあります。

+0

申し訳ありませんが、私が戻ってくるのにとても時間がかかりました。私は基本的に、その後 Response.ContentTypeの= "アプリケーション/ vnd.ms-エクセル" Response.AddHeader「のContent "に" = 場合、Request.QueryString場合( "sendtoexcel")...私のページにこれを追加しました「添付ファイル;ファイル名= fname.xls」 末尾の場合 と入力int形式です。これは今のところ十分です。ご協力いただきありがとうございます。 – MrVimes

0

イントラネット設定で使用するアプローチは、テーブルをHTMLとして送信するが、応答のコンテンツタイプを "application/vnd.ms-excel"に設定するASPページを持つことです。

潜在的にあなたが3ページ必要があります:

  1. でそのような他のマークアップでenscounchedテーブル出力を作成するために含めるを使用するビュー・ページを開始HTMLテーブルを生成するコードが含まれている含めるページをナビゲーションとして、 "send to excel link"(下のページへのリンク)
  2. コンテンツタイプを "application/vnd.ms-excel"に設定し、同じインクルードを使用してテーブル出力を生成するページ。

ユーザーがリンクをクリックするだけで、テーブルの内容がExcelに表示されます。

最高の操作のために、Content-Dispostionヘッダー "filename = sensible.xls; attachment"を追加する必要があります。

+0

あなたの答えは私にとって最善のものだと思います。私はそれがまだクエリの結果ページで動作していないが、私は最終的にそれを働かせることを知っているほど十分に行った。しかし、時間がないので、私は後で自分の進歩についてコメントします。 – MrVimes

関連する問題