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

(本文档仅供参考)

问题描述

安卓系统中,打开报表,会有网格线(如下图),IOS系统打开没有。

问题原因

此问题是在电子表格设置了自适应的情况下,chrome的一个bug(安卓手机使用的就是chrome原生浏览器),电子表格的大小自适应是通过transform: scale(xx)实现的,当XX为非整数,会出现网格线。

XX为整数,不会出现网格线:

注:transform: scale(xx)属性是前端CSS样式实现网页整体的缩放效果,缩放的整体包括宽,高,背景,非smartbi系统上,直接写一个html测试也可以发现当transform: scale(xx)中的xx值非整数的时候会显示网格线,参考示例可使用:transform _scale.html 测试,测试效果如下图:

解决方案

方案一、电子表格报表不设置自适应。

方案二当您设置为电子表格为自适应之后, 该问题建议您考虑如下方案去规避chrome的网格线:首先取消电子表格的背景填充颜色,插入为图片背景(如下图所示)。

方案三、如果只是部分表格会显示网格线,也可以先在制作报表的时候取消网格线,然后通过照相机功能制作报表展示,如果是整个报表都显示网格线,采取方案二。

方案四、设置保证单元格填充色和线条颜色一致,例如:电子表格单元格填充色和线条颜色全部设置为白色。

方案五、合并单元格,屏幕中间 就不存在一个一个小的单元格。

注:PC谷歌浏览器中也会出现此现象

关键词:格子、白色边框


其他场景:

场景1、表格设置了冻结窗格,此时冻结区域的背景写死了是白色,可添加宏修改网格线颜色

//类型:ClientSide	对象:spreadsheetReport	事件:onRender

function main(spreadsheetReport, isAjaxRefreshCallback) {
    //配置处理冻结表格边框的照相机名称。
    var executeTables = ["Picture 31"];
    //表格冻结后的背景色
    var tableBgColor = "#03065B";

    spreadsheetReport._ext_handerNum = 0;
    var timer = setInterval((function() {
        this._ext_handerNum++;
        if (this._ext_handerNum > 1000) {
            clearInterval(timer);
        }
        var shapesMap = this.shapesMap;
        for (var i = 0; i < executeTables.length; i++) {
            if (shapesMap[executeTables[i]]) {
                var frame = shapesMap[executeTables[i]];
                try {
                    var table = frame.contentWindow.document.getElementById("mainTable");
                    if (table) {
                        table.style.background = tableBgColor;
                    }
                } catch (e) {
                    return;
                }

                try {
                    var table = frame.contentWindow.document.getElementById("frozenRow").getElementsByTagName("table")[0];
                    if (table) {
                        table.style.background = tableBgColor;
                    }
                } catch (e) {
                    return;
                }
                try {
                    var table = frame.contentWindow.document.getElementById("frozenColumn").getElementsByTagName("table")[0];
                    if (table) {
                        table.style.background = tableBgColor;
                    }
                } catch (e) {
                    return;
                }
                try {
                    var table = frame.contentWindow.document.getElementById("frozenCross").getElementsByTagName("table")[0];
                    if (table) {
                        table.style.background = tableBgColor;
                    }
                } catch (e) {
                    return;
                }
            }
        }
        clearInterval(timer);
    }).bind(spreadsheetReport), 100);
}

场景2、表格设置了冻结窗格,通过url集成到仪表盘后,编辑状态正常,预览/打开报表,会有白色网格线,可添加宏修改网格线颜色

//类型:ClientSide	对象:spreadsheetReport	事件:onRender
function main(spreadsheetReport, isAjaxRefreshCallback) {
    var doc = spreadsheetReport.elemSheetFrame.contentDocument;
    var frozenColumn = doc.getElementById('frozenColumn');
	var frozenRow = doc.getElementById('frozenRow');
	var frozenCross = doc.getElementById('frozenCross');
	// -----------------自定义颜色部分------------------------------
	frozenColumn.style.backgroundColor = '#000';
	frozenRow.style.backgroundColor = '#000';
	frozenCross.style.backgroundColor = '#000';
	// ----------------------结束-----------------------------------
}