公司出的 三级程序程序员试题
题目如下
实现一可编辑的表格,表格布局类似Excel,行号用数字表示,列号用26进制字母组合表示,支持单元格间简单公式计算,如在A1单元格输入1,A2输入2,A3输入=A1+A2,回车后A3自动计算出3
excel.html
只包含了 导入extjs 文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<!-- ext -->
<link rel="stylesheet" type="text/css" href="ext-4.0/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="ext-4.0/shared/example.css" />
<link rel="stylesheet" type="text/css" href="ext-4.0/examples/ux/css/CheckHeader.css" />
<script type="text/javascript" src="ext-4.0/bootstrap.js"></script>
<script type="text/javascript" src="excel.js"></script>
</head>
<body>
</body>
</html>
excel.js
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', 'ext-4.0/examples/ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.state.*',
'Ext.selection.CellModel',
'Ext.form.*',
'Ext.ux.CheckColumn'
])
Ext.onReady(function(){
Ext.QuickTips.init();
var excelArr = new Array(); //製作顯示部份
var index=1;
for(var i=0;i<26;i++){
var str = new Array();
for(var j=0;j<26;j++){
if(j==0)
str.push(index);
else
str.push('');
}
index++;
excelArr.push(str);
}
var tempStor = new Array(); //製作store fields
for(var i=0;i<27;i++){
var temp ;
if(i==0){
temp = {name: 1, type: 'float'}
}
else{
temp = {name: (String.fromCharCode(65+i-1)), type: 'float'}
}
tempStor.push(temp);
}
var store = Ext.create('Ext.data.ArrayStore', { //獲取store
fields:tempStor ,
data: excelArr
});
var gridData = new Array(); //製作 grid columns
gridData.push({ text : 'no',locked:true,sortable : false,width:50,dataIndex: 1});
for(var i=1;i<27;i++){
gridData.push({
text : String.fromCharCode(65+i-1),
sortable : false,width:50,
dataIndex: (String.fromCharCode(65+i-1)),
field: 'textfield',
});
}
var grid = Ext.create('Ext.grid.Panel', {
store: store,
autoScroll:true,
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1,
listeners:{
'edit':function(editor,e,options){ //监听修改事件
value = e.value;
var err = value.match(/^([a-zA-Z]{1})([0-9]{1,3})([+|\-|*|\/]{1})([a-zA-Z]{1})([0-9]{1,3})$/)//使用正则表达式
if(err!=null){
var v1 = (grid.getStore().getAt(err[2]-1).get(err[1].toUpperCase())); //获取第一个的值
var v2 = (grid.getStore().getAt(err[5]-1).get(err[4].toUpperCase())); //获取第二个的值
var result = eval(v1+err[3]+v2); //计算
grid.getStore().getAt(e.rowIdx ).set(e.column.text,result); //添加进表格
}
if(value.match(/^[0-9|\-|.]{1,10}$/)==null&&err==null){
grid.getStore().getAt(e.rowIdx ).set(e.column.text,'0'); //添加进表格
}
}
}
})
],
columnLines:true,
flex:1,
columns: gridData,
height: 550,
width: 1200,
renderTo: Ext.getBody(),
});
});
分享到:
相关推荐
extjs4.0导出excel示例!赶快下载吧!
ExtJs Grid导出Excel实例源码,后台C#。有分页功能,却仍可实现导出后台所有记录的功能
NULL 博文链接:https://northc.iteye.com/blog/1450965
1采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3分别封装...
1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、...
ext导出到excel, 支持最新的Extjs 4.0,4.1,
且是基于基于extjs3.2和ext.net 1.6的,官方已不再升级(ext.net 1.6),原作者早已不再升级,所以他将源码公布于网上,本人就将其源码升级,新增了很多新功能,现在新版本是基于extjs4.0 的ext.net Pro2.0(官方:...
extjs4.2 导出至excel (新测可用,修改引用指向) 网上唯一一个可以在4.2跑的实例,代码来自网络的4.0版本,经个人修改可在4.2跑起,并做了修改链接地址的范例
专题:Excel 数据导出导入功能详解 专题:ExtJs 的图表高级应用 专题:log4Net 开发详解 专题:深入讲解 WebService 在实战开发中的应用 专题:水晶报表使用入门及实战 BF-TECH4.0.NET 第二季开学典礼 ASP.NET 之 ...
sh rundev.sh 或 npm run devv4.0 更新内容开发架构变更,采用webpack进行模块化开发和打包开发了使用示例,更好的使用说明组件更新3.1 PC版增加布局组件,支持Fill和Border布局3.2 PC版增加ExcelImport组件3.3 栅格...