如何从Apex导出CSV数据?

时间:2018-08-10 13:39:58

标签: salesforce visualforce apex

我正在将数据从Apex导出到CSV。数据从JSONObject发送到CSV,但与所有Html标签一起发送。我不想要CSV格式的HTML标签。只想显示数据。我已经拿了一个jsonobject并从json中读取数据。

    // JsonData
    String myObj = { "name":"John", "age":30, "car":null };
    myObj = (List<JsnApx>) System.JSON.deserialize(myObj, List<JsnApx>.class);

    // code I have used to convert in CSV from Apex.
    public PageReference SaveAsCSV() {
        pb1=false;
        renderAsExcel='application/vnd.csv#Commission Summary Report.csv';
        return null;
        } 

    //vf page
    <apex:repeat value="{!myObj }" var="a" id="total" >
          <span styleClass="alldatatables" var="ca" cellpadding="5" rowClasses="alldatarows">
          <tr style="border:1px solid #000;">
               <td>{!a.name}</td>
               <td>{!a.age}</td>
               <td>{!a.car}</td>
          </tr></span>
    </apex:repeat>

2 个答案:

答案 0 :(得分:0)

我可能走的是简单明了的路线,但是数据导出器呢?

答案 1 :(得分:0)

您已包含各种HTML标签,例如spantrtd,您期望什么? Excel将尝试正确显示html表,但这并不意味着文件格式可以。

尝试类似的方法(我在明文部分的VF电子邮件模板中使用了类似的方法,在正常页面上也应该可以)

<apex:repeat value="{!records}" var="r">
{!r.Name},
<apex:outputText value="{0, date,yyyy-MM-dd},">
    <apex:param value="{!r.Date__c}" /> 
</apex:outputText>
<apex:outputText value="{!r.Account__r.Name}" />,
<apex:outputText value="{!r.Type__c}" />,
<apex:outputText value="{!r.Status__c}" />
</apex:repeat>

如果您遇到换行问题,则可以在末尾添加<br/>