现象
制作好电子表格报表后,有时候需要修改已经制作好的电子表格的图形,重新进行图形设置,此时发现EXCEL打开报表是图片而且无法进入图形设置,但浏览器echarts图形正常,可切换参数图形都会正常刷新。
正常对于已有的图形是可以进行设置,如下图:
现象说明
对于此现象是经排查发现是电子表格中引用的EChart图形在数据库记录中的resId(资源ID)与电子表格不匹配,从而导致Excel打开时无法匹配,但是浏览器打开过程中没有使用这个匹配规则导致的,初步猜测原因是插件版本不同制作报表导致,因不好定位确切的原因,可暂时通过如下方式解决。
解决方案:
新建一个计划任务,将出问题的电子表格的节点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()
--------------------------------------------------------------------------------------------------------------------------------