在 Apex 代码中生成 csv 文件
在 Apex 代碼中生成 csv 文件可以寫一個 Visualforce 頁面,設定類型為 excel 的格式,然后調用 PageReference 的 getContent()方法來獲取 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
總結
以上是生活随笔為你收集整理的在 Apex 代码中生成 csv 文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python导入win32com.cli
- 下一篇: .NET 并行(多核)编程系列之六 Ta