忍者ブログ
全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
[101] [100] [99] [98] [97] [96] [95] [94] [93] [92] [91]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

緊急地震速報の取材を受けたりしました。
夕刊とはいえ、毎日新聞の1面トップでカラー写真入りだったのにはオドロイタ。
多分、生涯これっきりだろうな。凶悪犯罪でも犯さない限り。

さて、

クエリ結果をCSVでダウンロードさせる方法として、最近このUDF(ユーザー定義関数)を使ってます。

QueryToCSV2 (http://www.cflib.org/udf.cfm?ID=1197)

このUDFと<cffile>を使えば、えらい簡単にできちゃいますね。

特に、queryのフィールドの並び順を任意に変えて落とせるところがいいです。
やったことある人はわかると思いますが、CFQUERYで取得するレコードセットって、フィールドの並び順がアルファベット順になっちゃうので、わかりにくくなってしまいます。(※oracle+jdbcドライバの時だけかも)


使い方のサンプルとしては、こんな感じ。

download.cfm

<!---UDF定義--->
<cfscript>
function QueryToCSV2(query){
 http://www.cflib.org/udf.cfm?ID=1197 のソース
}
</cfscript>

<!--- DownLoadするクエリ --->
<cfquery datasource="ds" name="samplequery">
select NAME,ADDRESS,EMAIL from notice
</cfquery>

<!--- CSVファイルを、指定の場所に作る --->
<cffile action="write" file="d:\cf_wwwroot\download\sample.csv"
output="#QueryToCSV2(samplequery,'氏名,メールアドレス,住所','NAME,EMAIL,ADDRESS')#">

<!--- CSVファイルを落として、消す --->
<CFHEADER NAME="Content-Disposition" VALUE="inline; filename=sample.csv">
<cfcontent type="application/msexcel" file="d:\cf_wwwroot\download\sample.csv" deletefile="yes">

#QueryToCSV2(クエリ名)#
だけでもいいですが、そうするとフィールドがアルファベット順に並んでしまいます。

#QueryToCSV2(クエリ名,'ダウンロードする人がわかるフィールド名','queryの実際のフィールド名')#
と、オプションをつけると、人に優しいcsvファイルになります。

簡単ですね。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
ブログ内検索
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。

情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。

外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・

FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新トラックバック
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
なかのひと
忍者ブログ [PR]