您好该了一下代码,参考:
- $(document).ready(function () {
- window.onload = function() {
- var spread = new GC.Spread.Sheets.Workbook($("#ss")[0], { sheetCount : 1 });
- var sheet = spread.getActiveSheet();
- //非数字禁止输入
- function NumberCellType() {
- }
- NumberCellType.prototype = new GC.Spread.Sheets.CellTypes.Text();
- NumberCellType.prototype.paint = function(ctx, value, x, y, w, h,style, options) {
- if (value) {
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, options ]);
- }
- };
- NumberCellType.prototype.updateEditor = function(editorContext, cellStyle, cellRect) {
- if (editorContext) {
- $(editorContext).width(cellRect.width);
- $(editorContext).height(100);
- return { height : 100 };
- }
- };
- NumberCellType.prototype.createEditorElement = function(context) {
- var editor = GC.Spread.Sheets.CellTypes.Text.prototype.createEditorElement.call(this, context);
- //var textarea = editor.firstChild;
- editor.onkeypress = function(event) {
- return event.keyCode >= 48 && event.keyCode <= 57 || event.keyCode == 46
- }
- editor.onkeyup = function(event) {
- this.innerHTML = this.innerHTML.replace(/[\u4e00-\u9fa5]/g, '').replace(/\D/g, '');
- }
- editor.onpaste = function(event) {
- var clipData = event.clipboardData;
- return !clipData.getData('text').match(/\D/);
- }
- editor.ondragenter = function(event) {
- return false;
- }
- return editor;
- };
- NumberCellType.prototype.setEditorValue = function(editorContext, value) {
- if (editorContext && value) {
- var input1 = editorContext;
- $(input1).val(value);
- }
- };
- NumberCellType.prototype.isReservedKey = function(e) {
- return (e.keyCode === GC.Spread.Commands.Key.tab && !e.ctrlKey&& !e.shiftKey && !e.altKey);
- };
- NumberCellType.prototype.isEditingValueChanged = function(oldValue, newValue) {
- if (newValue != oldValue) {
- return true;
- }
- return false;
- };
- var numberCellType = new NumberCellType();
- sheet.getCell(0,3).value("11");
- sheet.getRange(1,3,5,1).cellType(numberCellType);
- }
-
- });
复制代码
这里没有实现复制粘贴功能,这块可以监听ClipboardPasting事件,在事件中检测是否符合输入规则,不符合调用cancel来取消复制。
复制可以设置sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values; 这样只会粘贴值,不会粘贴格式
另外拖拽本身就是会覆盖格式的,如果您不想覆盖可以禁止拖拽功能。 |