1、导出为excel方法
<apex:page standardController="Account" contentType="application/vnd.ms-excel"> <apex:pageBlock title="Contacts"> <apex:pageBlockTable value="{!account.Contacts}" var="contact"> <apex:column value="{!contact.Name}"/> <apex:column value="{!contact.MailingCity}"/> <apex:column value="{!contact.Phone}"/> </apex:pageBlockTable> </apex:pageBlock> </apex:page>2、导出excel如果遇到这个Collection size 1,416 exceeds maximum size of 1,000.
处理方法:
在页面上使用<apex:repeat>嵌套处理
例子:
<apex:page controller="TempCon" contentType="application/vnd.ms-excel">
<apex:pageBlock title="Contacts">
<apex:pageBlockTable value="{!conbks}" var="cbk">
<apex:repeat value="{!cbk.bks}" var="bk">
<apex:column value="{!bk.Name}"/>
<apex:column value="{!bk.Field922__c}"/>
</apex:repeat>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>
public with sharing class TempCon {
public List<Bukken__c> bks{get;set;}
public List<Conbks> conbks{get;set;}
public TempCon(){
bks = [select Name,Field922__c from Bukken__c];
if(bks != null && bks.size()>1000){
conbks = new List<Conbks>();
for(integer i = 0;i < (math.mod(bks.size(),1000)==0?bks.size()/1000:bks.size()/1000+1);i++){
Conbks cbk = new Conbks();
cbk.i = i;
List<Bukken__c> bkts = new List<Bukken__c>();
for(Integer j=i*1000;j<(i+1)*1000;j++){
if(j<bks.size()){
bkts.add(bks.get(j));
}else{
break;
}
}
cbk.bks = bkts;
conbks.add(cbk);
}
}
}
class Conbks{
public Integer i{get;set;}
public List<Bukken__c> bks{get;set;}
}
}
使用此方法我导出了5.46M的数据
这只是个参考方法,或许还有更好的。。