盘点Salesforce导出Excel那点坑
【前言】:不久前收到一个导出放盘信息自定义字段历史跟踪Log的任务,以方便客户月底根据Log记录来判断哪个置业顾问对房源信息贡献最大,并以此发放奖金。本篇将同时结合同事自定义Contact Excel导出时的经验,来总结归纳在使用Salesforce导出Excel时常遇见的那些问题和对应的解决方案,供参考。
【常见问题】:
A. Collection size exceeds maximum size of 1,000;
B. Response size exceeded 15MB orgnization limit;
我们发现,这两个问题都是由于数据量过大造成的,一个是集合本身的Size容量问题,一个是数据Size容量的问题;
当然Excel不同供应商对于最大的行限制也是有要求的,就目前使用的工具来看,WPS最多6w+,Office可以没试过极限,27w+是支持的。sf官方是这样介绍的:
Common tool-imposed limits are 1,048,576 rows by 16,384 columns, or 65,536 rows by 256 columns.
【解决方案】:
针对A,我们可以根据业务数据实际的峰值来选择一下方案:
方案一:在apex:page标签加readonly="true"属性,这样collection的限制会被扩展到1w,最简单;
参考资料:
方案二:我们也可以在Collection 1000的限制内通过List<List<Object>>的形式来扩展到1000*1000行(10w行);
这里提供两种写法,供参考:
List<List<Contact>> bigConList = new List<List<Contact>>();
List<Contact> conList = database.query(soql);if(conList.size() < 1000) {bigConList.add(conList);
}if(bigConList.size() == 0) {Integer i = 0;List<Contact> item = List<Contact>();for(Contact con : conList) {if(i <= 1000) {item.add(con);}else {bigConList.add(item);item = new List<Contact>(con);i = 0;}i++;}
}
List<List<Contact>> bigConList = new List<List<Contact>>();
List<Contact> conList = database.query(soql);if(conList.size() > 1000) {List<Contact> item = new List<Contact>();Integer i = 0;for(Contact con : conList) {i++;item.add(con);if(item.size() == 1000) {bigConList.add(item);item = new List<Contact>();}else if(conList.size() == i) {bigConList.add(item);}}
}else {bigConList.add(conList);
}
思考:假如把方案一和方案二结合在一起,理论上应该可以扩展到10000*10000,此处待测试。
针对B,我们可以使用sf标准的report导出功能来实现,因为When exporting a report in Salesforce Classic or in Lightning Experience as Details Only, you can export an unlimited number of report rows and columns.
【参考资料】:Export a Report
盘点Salesforce导出Excel那点坑相关推荐
- html导出excel 内存不足,web导出excel那些坑
背景介绍 昨天在一个前端的微信公众号看到一篇文章介绍导出cvs文件的,想想之前做导出excel的踩过的坑,心想记录一下,或许可以帮助别人吧! 需求很简单,在某个报表页面需要把table导出excel. ...
- 盘点我用过的导出Excel的方法
在做项目的过程中,基本上都会和Excel打交道.这不仅仅是用户习惯,还因为Excel强大的二次数据处理能力. 这些年来,导出Excel的方式也用过很多种,在这里盘点一下,做个记录. 1.利用HttpR ...
- js vue 设置excel单元格样式_vue项目使用xlsx-style实现前端导出Excel样式修改(添加标题,边框等),并且上传npm踩坑记录...
前段时间,我们项目提出一个前端导出Excel表格的需求, 这个很简单,利用xlsx,file-saver很容易实现(网上很多教程). 后来需要加入标题,标题居中显示,加入边框等等样式需求,这就给我很多 ...
- POI导出Excel设置背景色踩坑,解决背景色全黑(无效)的问题及指定列添加背景色,自定义颜色
POI导出Excel设置背景色踩坑,解决背景色全黑的问题及指定列添加背景色,自定义颜色 一.自定义颜色 二.背景色全黑(无效)的问题解决![在这里插入图片描述](https://img-blog.cs ...
- Vue-element 引用FileSaver xlsx 导出excel踩坑
一大早上也是有被自己蠢到,就说为啥一直导出按钮没反应原来我只引用了这个. 其实还需要再引用一个 然后还得设置全局变量 怪不得我的按钮没反应,无语辽. 最后附上导出excel代码
- 踩坑:EasyExcel导出excel导出数据为空
我再java代码中导出excel 导出数据为空如下图 问题探究 经过断点排查数据 发现数据取出来了 那么问题就不在取数据而在数据写入部分 经过排查翻阅博客发现了这么一句话 读写反射对象用到了Cglib ...
- EasyPoi导出excel多Sheet遇到的坑
问题描述 1.项目中需要多shee导出,需要动态生成列. 2.我的方法是在执行ExcelExportUtil.exportExcel之后,插入自定义的列. 3.发现在执行ExcelExportUtil ...
- mybatis plus 导出sql_springBoot+mybatisPlus+hutool 实现输入sql导出 excel表格
支持pom包 com.baomidou mybatis-plus-boot-starter 3.1.1 cn.hutool hutool-all 4.5.10 org.apache.poi poi-o ...
- JXLS导出Excel(模板导出)
1.导包 在pom.xml中加入依赖如下: <dependency><groupId>org.jxls</groupId><artifactId>jxl ...
最新文章
- 36晋级12第四场:评委弃权 无人晋级
- Java8中的流操作-基本使用性能测试
- Android自定义控件实现九宫格解锁
- python打乱list_超实用!每 30 秒学会一个 Python 小技巧,GitHub 标星 5300!
- linux --- 进阶指令
- OpenCV修养(三)——图像处理(上)
- CoreAnimation编程指南(八)事务 转自:http://www.dreamingwish.com/
- POJ - 3494
- 【洛谷3368】树状数组模版题(区间修改,单点查询)
- C#如何连接带密码的access数据库?
- 群体智能优化算法之蝙蝠算法(Bat Algorithm,BA)
- 微型计算机原理指令改错题,微机原理期末考试题
- 手摸手。完成一个H5 抽奖功能
- Spark源码系列(二)RDD详解 - 岑玉海
- 由闷骚书生与假正经小姐的古典爱情故事说起
- 钉钉-日程与任务管理
- SXSSFWorkbook 表格内换行
- PDF Tools - PDF增强工具
- 达梦数据库sql优化实践2
- 定位——胖鱼HTML/css入门第八天
热门文章
- 【掌控板教程】网络编程——古语天地学习器
- MySQL数据库迁移瀚高数据库
- VS+QT双击ui文件用Designer打开时出现未指定错误/无法打开XX.ui文件
- java随机生成验证码图片
- adb查看实时资源占用情况
- 上海AWE开幕:3M全球首发空气净化战略新品;恒洁展示智能双Q一体机;法国欧凯提供微晶玻璃创新解决方案 | 美通企业日报...
- 今日份弱智代码2022.10.9
- 微信跳转手机浏览器下载app和访问指定页面无法自动跳转的解决方案
- Linux下nano编辑器的常用快捷键
- eTerm系统连接报10001错误及中文乱码