【16.2.5】workbook.getActiveSheet 的 ts 声明不正确
getActiveSheet 在包里面的声明是 WorkSheet 但是也有可能是 TableSheet ,WorkSheet 是可以正常读取到options的,但是TableSheet是没有options的,这个问题你们ts因为类型声明问题导致项目代码出现了崩溃,望修复。您好,如果您想要获取的是当前的集算表的话,需要使用getActiveSheetTab来获取,而非getActiveSheet。 Joestar.Xu 发表于 2023-10-30 13:35
您好,如果您想要获取的是当前的集算表的话,需要使用getActiveSheetTab来获取,而非getActiveSheet。
我知道获取集算表用 getActiveSheetTab。主要是spreadjs的这个ts声明明确说了返回 WorkSheet 但是有时候并不是从而导致某些情况下页面的crash,我觉得这是一个bug 了解了,您这边能否提供一个可以复现该问题的Demo,我这边调研一下看看。 Joestar.Xu 发表于 2023-10-30 14:42
了解了,您这边能否提供一个可以复现该问题的Demo,我这边调研一下看看。
这个附件项目即可复现
我将您这个JSON导入到Demo里面,当前Active的Sheet是TableSheet,对于这种情况,使用getActiveSheet接口是无法获取当前sheet的,你会看见右侧控制台中输出的值为undefined。
这种情况下您应该使用getActiveSheetTab接口:
而不是getActiveSheet接口:
Joestar.Xu 发表于 2023-10-30 17:39
我将您这个JSON导入到Demo里面,当前Active的Sheet是TableSheet,对于这种情况,使用getActiveSheet接口是 ...
对啊 我知道要使用 getActiveSheetTab 去获取 TableSheet。但是我这里反应的是ts的声明问题,spreadjs的ts声明保证 getActiveSheet 接口返回的是 WorkSheet 而不是一个 WorkSheet | undefined 这样的联合类型。这样的声明确实会给使用ts的工程项目带来隐性的bug,因为我并不能知道此时加载的ssjson的activeSheet到底能不能按照声明的说法在不做空值检测的情况下获取到值 :loap1:明白您的意思了,我会将您这个需求反馈给研发那边,本帖先移至产品需求板块了。
页:
[1]