SpreadJS常见问题汇总
工作簿
1.关于Spread keydown事件的问题
spreadjs本身没有keydown事件,用JavaScript本身的keydown
2.spread因为本身不会失去焦点,所以点击其他Spread之外的地方是没有办法获取到事件的
3.表格区域大小如何跟随浏览器窗口进行缩放?
spread.refresh()
4.如何禁用行列的拖拽行为
spread.options.allowUserResize = false;
5.滚动位置能否控制?隐藏坐标栏后如何调整列宽和行高?
sheet.showRow(0)
隐藏之后只能通过代码setColumnWidth 和setRowHeight来调整宽度高度
6.SpreadJS能否不依赖DOM和Canvas,在Web Worker 中加载?
spreadjs必须依赖canvas。在web worker中因为spreadjs中需要依赖浏览器上下文(例如量字功能,事件机制等),但是web worker中没有,所以目前不支持web worker
7.spreadjs快捷键demo.grapecity.com.cn/spreadjs/he…
8.点击表单左上角全选按钮,出现卡顿现象咋么解决?
正常 statusBar.maxCalcCells = 1000;,设置最大计算单元格数量,默认50000
9.SpreadJS中样式优先级及常见问题
条件格式 > 单元格 > 行 > 列 > 表单
10.后台传过来多个excel模板如何合并到一张表中?
使用gcexcel在后端完成
导入导出
1.SpreadJS中导入导出规范及常见问题
导入导出功能需要在引入SpreadJS基本JS文件的基础上额外引入两个文件:
- gc.spread.excelio.xx.x.x.min.js(必选,转换对象类型:application/zip,若转为其他形式,自行处理)
- FileSaver.js(可选,如果只需导出到服务器,不需要引入)
浏览器支持(SpreadJS使用IE9,FileSAver.js使用IE10)
ts需要对Excello单独授权
2.导出的JSON结构
3.spreadjs json中这样的/OADate(42065)/ 如何取得对应的日期值呢?
sheet.tag("/OADate(42065)/");
var date = sheet.tag(); spread.refresh()
4.怎么通过JSON数据替换单个sheet表单
把原来的.ssjson,先加载到一个隐藏的hidden_spread里,然后获取他的sheet对象,通过toJson方法来保存该字符串,供下个需要初始化的spread读取。
5.fromJSON toJSON 调整列宽问题无效的问题?
fromJSON后需要重新获取一下sheet对象,因为之前的sheet在fromJSON的时候已经被销毁,fromJSON后的sheet对象已经不是之前那个sheet对象了,需要重新获取一下,然后再用sheet.setColumnWidth(0,0)设置列宽
6.spreadjs 里面的导入json结构是怎么样的
help.grapecity.com.cn/display/SPR…
7.如何获得与用户所见不一致的ssjson
通过fromjson和tojson序列化做一个深拷贝,修改深拷贝再序列化成ssjson
8.excelIO 调用保存时控制台打印'文件格式错误'的问题
未在项目中引入 FileSaver 文件 9.将spreadA中的sheet添加到spreadB中,出现样式混乱问题?
样式混乱是由于导入的excel文件使用了大量的名称样式,并全局注册到了spreadA中,当导出某个sheet页时,并未携带这些名称样式,所以spreadB中才会出现样式混乱。
spreadB.addNamedStyle(namedStyle);\
})