对于您的第二个问题,主要原因在于,您的这个下拉组件引用的是第三方的插件,其中会有很多兼容性的问题,比较好的处理办法如下,在粘贴前将您要粘贴的内容进行修改,粘贴结束后将您原本修改的区域进行复原,从而实现您要的效果
- // 记录text
- sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
- this.tempData = [];
- var row = args.fromRange.row;
- var col = args.fromRange.col;
- var rowCount = args.fromRange.rowCount;
- var colCount = args.fromRange.colCount;
- var fromSheetName = args.fromSheet.name()
- for (var i = row; i < row + rowCount; i++) {
- for (var j = col; j < col + colCount; j++) {
- if (sheet.getCellType(i, j) instanceof SelectCellType) {
- this.tempData.push({ fromSheetName: fromSheetName, i: i, j: j, val: sheet.getCell(i, j).value() });
- sheet.setValue(i, j, sheet.getCell(i, j).value().label)// 先把真实值写到单元格上,用于下一步的复制动作
- }
- }
- }
- });
- // 粘贴结束,把原本的值进行复原
- sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
- this.tempData.forEach(function (data, index) {
- var fromSheet = spread.getSheetFromName(data.fromSheetName);
- fromSheet.setValue(data.i, data.j, data.val)
- })
- });
复制代码
|