页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)

示例说明

电子表格在excel中对字段设置了自动换行后,在excel端的打印效果与在浏览器端的打印效果不一致。

...

我们可以通过调整设置和宏代码辅助,实现正确的打印效果。

设置方法

前提

1.首先要明确,对于Excel来说,行高和自动换行这两个功能是冲突的。在没有人为调整过行高的情况下,设置自动换行时,Excel中的数据是能够自动换行的。如下:

 


但是如果人为调整了行高,那么再设置自动换行,是不会生效的。Excel以设置的行高进行展示,不会再根据自动换行所需要的行高去进行调整了。如下:如果先设置的自动换行,再调整行高。也是以人为设置的行高为主

 


2.因此如果要实现自动换行,且自动调整行高的效果。需要先将人为设置的行高修改回原始默认的行高。如何修改呢?

(1)先将这一行所有单元格的已设置的“自动换行”取消

 


(2)将鼠标放在行号的下方,比如要调整第3行的行高,则将鼠标放在第3行和第4行的中间那根分界线上,然后双击,即可讲人为设置的行高取消。

...

(4)可选中单元格,然后在“开始”-》“格式”中,勾选“自动调整行高”

 


3.对于合并了行的单元格来说,自动换行的行高无法确保一定能够自动适应。

...


设置步骤

1.了解了Excel自动换行和行高等前提条件之后,我们需要在Excel中打开电子表格

2.对于该电子表格中,如果不需要自动换行,只要固定行高的行,我们可以手动设置一下行高。比如类别这一行,不需要自动换行。且要固定行高,因此可以右键设置一下行高。(注:若不设置行高,后续使用的宏代码会自动调整行高)

 


3.对于需要自动换行的单元格所在的行,根据“前提”中的信息。先将这一行的所有单元格的自动换行取消掉,并且调整行高回到原始的行高

 


然后再次设置“自动换行”和“自动调整行高”

 


4.一般情况下,通过上面的设置已经能够解决打印时效果不正确的问题。若打印仍有问题,可增加如下宏代码,做强制处理

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

宏类型

类型

对象

事件

ServerSide

spreadsheetReport

onBeforeOutput

 


宏代码

代码块
languagejs
linenumberstrue
function main(spreadsheetReport) {
    spreadsheetReport.workbook.worksheets.get(0).autoFitRows(true);
}

 


另:如果使用上面的报表宏还无法解决,可尝试使用下面的报表宏解决。

宏类型

...


类型

对象

事件

ServerSide

spreadsheetReport

onBeforeOutput

宏代码

代码块
languagejs
linenumberstrue
function main(spreadsheetReport) {
    var options = Packages.com.aspose.cells.AutoFitterOptions();
    options.setAutoFitMergedCells(true);
    spreadsheetReport.workbook.worksheets.get(0).autoFitRows(options);
}

...