実際に作成したVisualforceページはこんな具合になりました。
<apex:page controller="[コントローラー名]" action="{!メソッド名}" contentType="application/vnd.ms-excel;charset=Shift_JIS;#CSV-{!MID(TEXT(TODAY()),0,4)}{!MID(TEXT(TODAY()),6,2)}{!MID(TEXT(TODAY()),9,2)}{!MID(TEXT(NOW()+9/24),12,2)}{!MID(TEXT(NOW()+9/24),15,2)}{!MID(TEXT(NOW()+9/24),18,2)}.csv"> <apex:outputText escape="true" value="カラム01,カラム02,カラム03,カラム04" /> {!''} <apex:repeat value="{!データリスト変数}" var="r"> <apex:outputText value="1" />, <apex:outputText value="{!"""}1{!"""}" />, <apex:outputText value="{!"""}{!SUBSTITUTE(r.日付型の項目, '-', '/')}{!"""}" />, <apex:outputText value="1" rendered="{!IF(r.ある項目='AAA',true,false)}" /><apex:outputText value="0" rendered="{!IF(r.ある項目='AAA',false,true)}" /> {!''} </apex:repeat> </apex:page>
- 文字コードはShift JISで出力されます。
- ファイル名はCSV-[日付時間].csvで出力されます。
- 2番目と3番目のデータはダブルクォーテーションでくくられます。
- 4番目のデータは1 or 0で出力します。