前言|问题背景本例为用户提出的实际需求。在类似金额的票据中,一个单元格只允许填写一个数字,每个单元格对应一个数字,如千、万、百等。根据这个需求分析可以看出:需要实现以下基本操作:需要保护和锁定对应的表格区域,不能直接允许用户编辑单元格内容,否则不能保证用户只输入一位数字;需要监听键盘事件,通过事件码给单元格赋值,过滤除数字以外的其他字符;填充一个单元格后,活动单元格将自动移动到下一个单元格,无需鼠标单击或键盘切换。本文基于SpreadJSV12版本,请点击下载。样例代码分析从上面的分析可知,首先需要对表单进行保护,同时设置样式和表头,如下:varspread=newGC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:1});varsheet=spread.getActiveSheet();//设置sheet保护sheet.options.isProtected=true;sheet.setRowCount(5);sheet.setColumnCount(9);sheet.defaults.rowHeight=60;sheet.defaults.colWidth=40;varstyle=sheet.getDefaultStyle();//设置默认样式的边框style.borderLeft=newGC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);style.borderTop=newGC.Spread.Sheets.LineBorder("黑色",GC.Spread.Sheets.LineStyle.thin);style.borderRight=newGC.Spread.Sheets.LineBorder("黑色",GC.Spread.Sheets.LineStyle.thin);style.borderBottom=newGC.Spread.Sheets.LineBorder("black",GC.Spread.Sheets.LineStyle.thin);//设置对齐方式style.hAlign=GC.Spread.Sheets.Horizo??ntalAlign.center;style.vAlign=GC.Spread.Sheets.VerticalAlign.center;sheet.setDefaultStyle(style);vararr=["百","十","万","千","百","十","元","角","分"];for(设i=0;i
