将数据导出为csv附件

时间:2014-03-27 07:04:04

标签: salesforce apex-code visualforce apex

大家好我想将自定义对象中的所有数据导出为CSV,并使用APEX将其作为电子邮件附件发送。 这可能吗?

3 个答案:

答案 0 :(得分:0)

您没有说是否要将文件附加到电子邮件或其他内容,因此我将描述将数据导出到CSV文件的最简单方法。

  • 为自定义对象创建表格报告。
  • 添加您需要查看列的所有字段。
  • 运行报告。
  • 点击“导出详细信息”。
  • 对于“导出文件格式”,选择“逗号分隔.csv”。
  • 点击“导出”。
  • 保存文件等。

答案 1 :(得分:0)

您可以尝试这样<apex:page controller="*your controller name*" **contentType="application/vnd.ms-excel#contacts.xls**" readOnly="True"> 在这里你可以添加其他代码,例如,如果你想下载联系人的csv文件,那么

<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>

希望这样可以帮助你!

答案 2 :(得分:0)

如果您要做的只是将查询的csv附加到记录:

Attachment a = new Attachment(ParentId = 'Parent_Record_Id_Here', Name='Test Attachment.csv');
Blob body = Blob.valueOf(getCsvFromSOQL());
a.Body = body;
insert a;

String getCsvFromSOQL(){
    //do query and build csv string
    csvString = '';
    //List<Something__c> things = [SELECT Id, Name FROM Something__c];
    // build your csv
    csvString = 'Name,Value\nFirst,1\nSecond,2\nThird,3';
    return csvString;
}

如果您想将其作为电子邮件发送,可以在代码中执行此操作或查看visualforce电子邮件模板