看了您的代码, 不确定您这边是否初步学习过SpreadJS。SpreadJS有一个基本功能是为选中单元格赋值。我看您的代码虽然用了Spread容器,但是填充值并没有使用SpreadJs相关API。您这边是否有特殊原因呢?
如果使用SpreadJS相关API,您的代码不用那么复杂。
简单代码如下所示:
- function insertHtmlAtCaret(html) {
- var spread = GC.Spread.Sheets.findControl(document.getElementById('ss'))
- var sheet = spread.getActiveSheet();
- var selections = sheet.getSelections();
- if (selections.length > 0) {
- const {row, col, rowCount, colCount} = selections[0];
- const olsText = sheet.getValue(row, col) || '';
- sheet.setValue(row, col, olsText + '' + html);
- sheet.autoFitColumn(col);
- }
- }
复制代码 在点击插入html按钮后,获取当前选中单元格,继而获取row,col等数据。然后setValue填充值。最后autoFitColumn(),自适应列
效果如下图所示:
还有就是 观察到您这边使用了单元格双击,您是想在双击后在填充值吗,如果是这样子的话,有一个CellDoubleClick事件,在其事件中可以获取双击单元格的行列。然后在insertHtmlAtCaret方法里面,判断判断获取的单元格row,col是否是双击单元格的行列,如果是的话,则填充值。
最后将修改好的app.js放在附件中,可以查看。
|
|