页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题现象

制作好电子表格报表后,有时候需要修改已经制作好的电子表格的图形,重新进行图形设置,此时发现EXCEL打开报表是图片而且无法进入图形设置。

正常对于已有的图形是可以进行设置,如下图:

可能原因

1、是否有将报表保存到本地?如果保存到本地之后,图形的属性是会丢失的,对应的图形也就变成了静态图片。正确的做法是点击发布,将报表发布到服务器上。

2、是否通过剪切的方式对echarts图形进行移动,比如从一个sheet页剪切到另一个sheet页,这种操作是不允许的,需要通过在图形右键 移动或复制 对图形进行移动到其他sheet。

3、是否用了低版本的插件打开过这个报表,比如v6版本及以下的电子表格是没有echarts图形功能的,若用低版本插件打开过这个报表,由于插件本身不支持这种图形,会导致图形属性丢失,此情况也可能导致图形变成静态图片了。

4、不明原因:电子表格中引用的EChart图形在数据库记录中的resId(资源ID)与电子表格不匹配,从而导致Excel打开时无法匹配,浏览器echarts图形正常,切换参数图形都会正常刷新。(浏览器打开过程中没有使用这个匹配规则。)

解决方案

方案一:

若是原因1、2、3导致的情况,则需考虑恢复备份知识库,或者重做资源的方式。(注:恢复知识库是恢复备份时间节点的知识库状态,即恢复知识库之后,在备份时间节点之后所做的所有操作都会被恢复。)

方案二:

若是原因4导致的情况,初步猜测原因是插件版本不同制作报表导致,因不好定位确切的原因,可暂时通过如下方式解决

新建一个计划任务,将出问题的电子表格的节点ID添加到计划任务进行执行,执行计划任务后,会更新EChart图形在数据库记录中的resId

var resId = "I402881910165a253a25303130165a3aa034134ee" //电子表格ID
var report = Packages.smartbi.catalogtree.CatalogTreeModule.getInstance().getDAO("SPREADSHEET_REPORT").load(resId)
var doc = Packages.smartbi.util.XmlUtility.parse(report.define)
var chartDAO = Packages.smartbi.chart.repository.ChartDAO.getInstance();
var ECharts = doc.getElementsByTagName("EChart")
for (var i = 0; i < ECharts.getLength(); i++) {
    var EChart = ECharts.item(i).getAttribute("c");
    var chart = chartDAO.load(EChart);
    chart.resId = resId ;
    chartDAO.update(chart); 
    
}
Packages.smartbi.repository.HibernateUtil.closeSession() 


--------------------------------------------------------------------------------------------------------------------------------

Viewtracker License Missing

There is a problem with the license of the Viewtracker addon. Please check if you have a valid license.

授权码细节
  • 无标签