粘贴Excel中的千分位数字到SpreadJS中触发非数字验证
看SpreadJS的在线编辑器可以正常粘贴,可能是公司用的版本太老了。
什么是数字验证
可以给单元格设置数据验证器,有数、日期、文本长度等官方验证器,非相同类型的数据填入单元格就会触发校验提示。
为什么千分位数字被识别成了非数字
Excel中设置了格式的数字——比如123,456,789.00
,在复制的文本中包含了一些空白字符[1]。如果没有这些空白字符是可以正常粘贴的。
解决方案
失败方案
当双击SpreadJS的单元格[2]粘贴时,会触发EditChange事件,事件参数中的editingText是单元格中正在编辑的文体,不过用代码修改不了它们。所以通过事件似乎无法直接干预粘贴的字符串。
解决方案
进入编辑态会触发editStarting事件,在这个事件中修改系统剪切板中的内容,将空白字符去掉就可以了。