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

该宏示例在 V10.5上 验证通过

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如报表使用冻结,或多个宏代码冲突等),需根据实际需求开发代码。

示例说明

有时候我们希望导出的excel报表,打开后,点击使用公式的单元格显示的是值,而不是显示公式。如下图:

原本打开的效果是:

版本及客户端说明

1.smartbi版本:V9

2.客户端:PC

3.导出excel格式

设置方法

1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。

2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面

3、在报表宏界面新建服务端模块。在弹出的新建模块对话框中,选择对象为spreadsheetReport、事件为onBeforeOutput、并把下面宏代码复制到代码编辑区域。


宏类型

类型

对象

事件

服务端宏

spreadsheetReportonBeforeOutput
function main(spreadsheetReport) {
    var type = spreadsheetReport.outputType; //导出类型
    if (type == "EXCEL2007" || type == "LIST_EXCEL") {
        spreadsheetReport.cacheable = false;
        var workbook = spreadsheetReport.workbook; //获取电子表格工作簿
        var worksheets = workbook.worksheets;
        for (var i = 0; i < worksheets.count; i++) {
            var worksheet = worksheets.get(i); //sheet1
            var cells = worksheet.cells;
            var maxDisplayRange = cells.maxDisplayRange; //表格最大范围
            //对表格中的值进行循环判断
            for (var x = 0; x < maxDisplayRange.rowCount; x++) {
                for (var y = 0; y < maxDisplayRange.columnCount; y++) {
                    var cell = cells.get(x, y);
                    if (cell.isFormula()) {
                        cell.value = cell.value;
                    }
                }
            }
        }
    }
}


相关资源:导出excle时将所有公式替换为值 (2).xml