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

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

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

当电子表格列的数据比较长的时候,我们希望列是可以根据单元格数据进行自适应。可以通过写服务器宏来实现电子表格列宽自适应

由于excel不支持对合并单元格进行列宽自适应,因此此宏对合并单元格是不生效的。如果在excel中使用的字体在服务器上没有,那么此宏也可能是不生效的。如果浏览器自身(主要是chrome)设置了最小字体,那么此宏也可能是不生效的,需要修改浏览器的最小字体。

加载前效果:

加载后效果:

具体实现步骤如下

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

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

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

function main(spreadsheetReport) {

    var sheet = spreadsheetReport.workbook.worksheets.get(0);

    if (sheet === "" || sheet === null) {

        return;

    }

    var counts = sheet.cells.maxDisplayRange.columnCount; //获取电子表格列数

    sheet.autoFitColumns(0, counts); //从0开始,到counts列结束。

    //sheet.autoFitColumn(3); //只对某列进行自适应,第一列为0

    

}

示例资源:电子表格列宽自适应.xml