麦粉社区
>
帖子详情

[报表开发] SmartBI 报表导出指南

动态中心 发表于 3 小时前
发表于 3 小时前

无论是日常数据分享还是定期报告生成,报表导出都是最常用的操作。本文档用最直白的方式,帮您快速搞定导出格式、数据量限制、性能调优、按钮限制和API调用等常见问题。


 


一、一图看懂:每种报表能导出什么格式?


 


下表总结了 SmartBI各类报表支持的导出格式,:支持 , :不支持


 
































































































资源类型|导出类型



EXCEL



CSV



PDF



WORD



PNG



PowerPoint



交互式仪表盘















即席查询















透视分析















WEB电子表格(分组表)















WEB电子表格(清单表)















插件电子表格(分组表)















插件电子表格(清单表)















分析报告(WORD)















分析报告(PPT)















小提示:如果您发现某个导出按钮不见了,可以先跳到本文第四节,检查是不是被权限或开关隐藏了。


 


二、导出数据量限制:防止系统被“撑爆”


 


导出大量数据时,系统需要消耗内存和CPU。为了避免单个导出任务拖垮整个服务器,SmartBI提供了多个参数来限制最大导出行数。下表按“影响范围”列出常用参数:


2.1 最常用的全局行数限制


 


































设置选项名称



选项说明



默认值



影响范围



设置入口



模型查询


【OLAP_QUERY_MAX_ROW_LIMIT】



控制仪表盘交叉表、即席查询、透视分析等从数据模型引擎查询返回的最大行数



20000



控制OLAP引擎以及SQL引擎交叉表、透视分析内存最大计算行数



【运维设置】-【系统选项】-【性能优化】




Excel2007最大导出行数


【EXCEL_EXPORT_MAX_COUNT】



所有报表导出为Excel格式时的最大行数限制



20000



所有报表导出为Excel


注:导出为 CSV 格式时,V11 2024-04-23 之后的版本 不受  该配置项限制,最大可导出约 21 亿行(2,147,483,647)



【运维设置】-【系统选项】-【公共设置】




清单表导出


【SPREAD_SHEET_REPORT_LIST_EXPORT_LIMIT_ENABLE】



是否对清单表导出启用行数限制的开关



false



报表:电子表格/web电子表格的清单表导出CSV


版本:2023-05-19之后V9.7、V10.5.8、V10.5.15版本 及 V11全部版本



【运维设置】-【系统选项】-【高级设置】中手动添加




 


三、导出任务并发与超时:别让导出“堵车”


 


当多人同时导出大量数据时,可能造成服务器响应缓慢甚至崩溃。SmartBI提供了“准入控制”机制来管理导出任务队列。


 
























导出类型



导出操作



优点



缺点



在线导出



点击页面的导出按钮,选择在线导出,导出的文件默认在系统的浏览器下载目录



1.可以通过页面的加载动画直观的看到导出进度


2.下载文件直接返回本地浏览器,可以直接打开查看,适用小数据量的报表导出



1.线导出需要在当前页面上等待系统导出完成后,才能继续进行其他操作。



离线导出



点击页面的导出按钮选择离线导出,报表先下载到指定目录(系统选项-公共设置-文件存储设置)下,等后台下载完成后,用户再到离线下载列表中查看,把离线导出完成的文件下载到本地。



1.离线导出采用的是后台导出机制,用户可以继续进行其他操作或者退出系统,适用于大数据量导出比如百万级别的报表导出



1.无法直观的看到导出进度


2.导出完成后需要到设置的下载目录或离线下载列表中查看和下载导出的文件。



 


3.1 总开关


 


















参数



作用



默认值



设置位置



ACC_ENABLED



是否启用下面所有导出控制参数



false(关闭)



【运维设置】-【系统选项】-【高级设置】手动添加



 


关键步骤:如果要使用并发控制,请先把这个开关设为 true。


 


3.2 在线导出(用户在报表上点击“在线”导出)


 





















参数



含义



默认值



ACC_EXPORT_CONCURRENCY_ONLINE



同时允许执行的在线导出任务数



10



ACC_EXPORT_TIMEOUT_ONLINE



单个在线导出任务最长执行时间(分钟),设置为 false 表示不限制超时时间



15



 


3.3 离线导出(用户在报表上点击“离线”导出,后台任务导出)


 






























参数



含义



默认值



备注



ACC_EXPORT_CONCURRENCY_OFFLINE



同时允许的离线导出任务数



40



V11 2026年后推荐使用此参数



OFFLINE_EXPORT_CONCURRENT_NUMBER(旧参数)



同上(兼容保留)



40



如果同时配置,新参数优先



ACC_EXPORT_TIMEOUT_OFFLINE



离线导出超时时间(分钟)



1440(24小时)



设为 false 表示不限制



 


3.4 队列管理(当并发数已满时)


 





















参数



含义



默认值



ACC_EXPORT_CONCURRENCY_QUEUE_MAX_SIZE



等待队列的最大长度



50



ACC_EXPORT_CONCURRENCY_WAIT_TIMEOUT



请求在队列中最多等待多久(分钟)



0.5(30秒)



 


实际效果举例


在线导出并发数为 10,队列长度 50。


当已有 10 个导出任务在运行时,第 11 个请求会进入等待队列。


如果队列也满了(超过 50 个等待),新请求会被直接拒绝。


等待超过 30 秒仍未轮到,该请求也会被拒绝。


 


四、导出按钮的个性化控制


有时业务人员不希望用户导出某些格式,或者压根不想看到导出按钮。SmartBI 提供了三个层级的控制。


4.1 全局权限控制(基于角色)


路径:【系统运维】→ 【用户管理】→ 选择角色 → 【操作权限】



效果:对某个角色屏蔽“导出”按钮后,该角色下所有用户在所有报表上都看不到导出选项。


适用报表类型:所有类型。


⚠️ 特别排查:如果交互式仪表盘的导出按钮完全消失,请先检查【运维设置】-【系统选项】-【公共设置】中的“导出引擎URL地址”是否连通。


 



 


4.2 单张报表级别控制


 




































报表按钮类型



屏蔽方案(可点击跳转)



补充说明



电子表格(WEB/插件端)导出按钮下拉列表



电子表格屏蔽导出按钮中的选项



在电子表格的导出按钮中,提供多个导出选项,如HTML、EXCEL、CVS等。有时候希望只保留某一些选项,可通过宏代码控制实现。



电子表格(WEB/插件端)屏蔽在线导出按钮



导出 - 电子表格导出屏蔽在线导出按钮



电子表格导出Excel的时候,导出模式不显示在线导出。



仪表盘屏蔽组件导出按钮



仪表盘如何隐藏整个工具栏或部分按钮,自定义工具栏按钮



自助仪表盘屏蔽组件右上角导出按钮



透视分析(新)工具栏导出按钮



透视分析隐藏工具栏按钮



V11版本新的透视分析中,希望隐藏导出按钮可以通过宏代码实现。



即席查询(新)工具栏导出按钮



即席查询如何隐藏/修改工具栏按钮?



V11版本(基于数据模型) 隐藏工具栏指定按钮



 


五、开发人员扩展接口(常用报表导出接口)


 


如果您需要在自己的系统中调用 SmartBI 导出功能(如集成到第三方应用),以下接口和示例可供参考。


 


5.1 电子表格导出接口


接口类:SSReport(服务端)


关键点:清单表和分组表导出 Excel 时,TYPE 参数不同


分组表 → EXCEL


清单表 → LIST_EXCEL(否则只能导出第一页)


 



接口文档:SSReport


获取报表类型JAVA代码示例:


SpreadSheetReportService spreadSheetReportService = new SpreadSheetReportService(conn);
String resId = "I8a74a424018d45b545b5b656018d549cb52a3f0f";
JSONObject result = spreadSheetReportService.openQuery(resId);
//0分组表 1清单表 2Excel融合分析
String reportType = result.getJSONObject("settings").getString("reportType");

restful接口:


同5.3_restful接口


 


5.2 交互式仪表盘导出接口


URL直调


适用版本:仪表盘导出不带报表参数目前只在V11支持


应用场景:第三方平台想要使用URL格式的方式调用导出引擎导出BI内交互式仪表盘资源


仪表盘URL配置导出分辨率等参数的示例(参数示例,非可直接打开的资源):


http://localhost.:3000/smartbi/vision/ExportHttpServlet?action=EXPORT_DASHBOARD_DIRECT&pageId=96660e8fde6336763f1d15700c4381e1&exportType=PNG&detectFailedSelector=.db-page__page-failed&detectLoadedSelector=.db-page__page-loaded&width=1024&height=768


后端接口:


smartbix.sdk 接口 IPageClientService


 


image2026-5-6_10-17-36.png


 


接口地址:IPageClientService


restful接口:


同5.3_restful接口


 


5.3新即席/透视导出接口


restful接口:


curl 'https://demo.smartbi.com.cn/smartbi/api/report/export/{resId}' \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"config": {
"exporType": "",
"fileName": "",
"exportRows": 1,
"withDataFormat": true,
"mergeCells": true,
"exportFilters": true,
"csvExportEncoding": "",
"exportFormula": true,
"exportSheetIndexes": "",
"paramsInfo": {
"propertyName*": {}
}
}
}'

接口地址:https://demo.smartbi.com.cn/smartbi/api/api-docs/index.html?smt_poid=43#api-%E6%8A%A5%E8%A1%A8%E6%A8%A1%E5%9D%97/tag/%E6%8A%A5%E8%A1%A8


 


 


 


来都来了,领取个任务答题巩固下知识点吧,答题可以领取麦豆哦,点击领取任务

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

0回帖数 0关注人数 51浏览人数
最后回复于:3 小时前

社区

指南

AI

搜索

快速回复 返回顶部 返回列表