Clark.Pan 发表于 2021-7-31 09:13:14

SpreadJS 指定打印多个Sheet

SpreadJS的打印功能可以指定某一个Sheet进行打印
spread.print(sheetIndex);
其中参数为需要打印sheet的index,传入sheet的index打印指定sheet。如果想全部打印,参数什么都不传即可。
那么,如果打印多个sheet,但不是所有sheet。例如:spread中有四个sheet,如何打印其中的两个?这个时候该怎么办呢?

之前我们写过博客,博客中的解决方法是:
需要将spread复制到一个临时spread中,在临时spread中删除不打印的sheet,然后打印临时spread。

但遇到存在公式跨sheet引用的情况下,这样的做法可能会出现问题。如果删除的sheet中的某些单元格被其他sheet所引用,那么删除之后公式的结果将变成#Value。这样也会造成打印结果变成#Value。这就不符合需求了。所以我们需要在之前的解决方案的基础上做一些改进。

改进的思路:
可以利用打印所见即所得的原理,将之前的删除不打印的sheet变为隐藏不打印的sheet。虽然sheet隐藏了,但是引用的公式结果并不会发生改变(sheet仍然存在在工作簿中)。


具体做法我们可以参考附件的demo





页: [1]
查看完整版本: SpreadJS 指定打印多个Sheet