カスタム ContentType の使用
Visualforce ページに異なる形式を指定するには、<apex:page> タグの ContentType 属性を使用します。これは、応答の Content-Type HTTP ヘッダーをページの ContentType 属性の値に設定します。
ContentType 属性は、application/vnd.ms-excel、text/csv、image/gif などの、Multipurpose Internet Mail Extension (MIME) メディアタイプを値として取ります。
Microsoft Excel ContentType の例
Visualforce ページデータを Microsoft Excel スプレッドシートに表示するには、<apex:page> タグの contentType 属性を使用し、application/vnd.ms-excel という値を指定します。
たとえば、次のページは取引先責任者の簡単なリストを作成します。これは、「ページでのデータのテーブルの作成」で示した例の簡易版です。
1<apex:page standardController="Account">
2
3 <!-- This page must be accessed with an Account Id in the URL. For example:
4 https://MyDomainName--c.vf.force.com/apex/myPage?id=001D000000JRBet -->
5
6 <apex:pageBlock title="Contacts">
7 <apex:pageBlockTable value="{!account.Contacts}" var="contact">
8 <apex:column value="{!contact.Name}"/>
9 <apex:column value="{!contact.MailingCity}"/>
10 <apex:column value="{!contact.Phone}"/>
11 </apex:pageBlockTable>
12 </apex:pageBlock>
13</apex:page>このページを Excel で表示するには、次のように contentType 属性を <apex:page> タグに追加します。
1<apex:page standardController="Account" contentType="application/vnd.ms-excel">
2 <apex:pageBlock title="Contacts">
3 <apex:pageBlockTable value="{!account.Contacts}" var="contact">
4 <apex:column value="{!contact.Name}"/>
5 <apex:column value="{!contact.MailingCity}"/>
6 <apex:column value="{!contact.Phone}"/>
7 </apex:pageBlockTable>
8 </apex:pageBlock>
9</apex:page>Excel でページが正しく表示されない場合は、text/csv など、別の MIME タイプを試してみてください。