在 Apex 代码中生成 csv 文件

在 Apex 代码中生成 csv 文件可以写一个 Visualforce 页面,设定类型为 excel 的格式,然后调用 PageReferencegetContent()方法来获取 Blob 格式,存放在附件。

不过另一种更简单的方式就是拼接字符串,csv 即逗号分隔值,所以 csv 文件的内容即一串字符串,用逗号分隔值。

代码:

String csvString = 'header1,header2,header3';
csvString += '\n';
csvString += 'value1,value2,value3';
csvString = '\ufeff' + csvString; // 前缀字节序标记
Blob csvBlob = Blob.valueOf(csvString);

csvBlob即生成的 csv 文件。

不过在 Microsoft Office Excel 中,打开 ASCII 码字符以外的字符,会出现乱码,需要在 csv 文件的最前面加上一个字节序标记符号(\ufeff)。所以在上面代码中生成字符串时前面加了一个 \ufeff

当 csv 的值中出现了逗号(,),双引号("),换行符(\n) 时,需要将这些值用双引号。特别地,对于值中的双引号("),要在双引号前再加一个双引号来避免歧义。

比如 csv 中一行的值如下
value1
value2withcomma,
value3withlinebreak\n
value4withdoublequote"

生成 csv 字符串时需生成为 value1,"value2withcomma,","value3withlinebreak\n","value4withdoublequote"""


References
1. Salesforce Developer Forum
2. Common Format and MIME Type for Comma-Separated Values (CSV) Files

转载于:https://www.cnblogs.com/salesforce1/p/generate-csv-in-apex.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值