公司出的 三级程序程序员试题
题目如下
实现一可编辑的表格,表格布局类似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 分享Grid导出Excel插件"是一个扩展功能,允许用户将ExtJS Grid中的数据导出为Microsoft Excel格式的文件。这对于数据分析、报表生成以及数据共享非常有用。 这个插件是针对ExtJS 4.0版本...
在EXTJS中,我们可以利用其内置的功能或借助第三方插件来实现在Grid中导出数据到Excel。 EXTJS Grid提供了多种方法来导出数据,包括CSV、PDF和Excel格式。在本实例中,我们将重点讨论导出到Excel的实现,后端采用C#...
1采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3分别封装...
1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、...
EXTJS是一个强大的JavaScript库,它提供了丰富的组件和功能,帮助开发者构建富客户端应用程序。标题提到的“extjs4.2 导出至excel (新测可用,修改引用指向)”表明这是一个已经过测试并且适用于EXTJS 4.2的解决方案,...
且是基于基于extjs3.2和ext.net 1.6的,官方已不再升级(ext.net 1.6),原作者早已不再升级,所以他将源码公布于网上,本人就将其源码升级,新增了很多新功能,现在新版本是基于extjs4.0 的ext.net Pro2.0(官方:...
在ExtJS 4.0和4.1版本中,Grid已经相当成熟,提供了丰富的功能和高度定制性。 要实现"extgrid导出excel",我们需要使用特定的扩展或插件。一种常见的方法是使用"Exporter"插件,如压缩包中的"exporter"文件所示。这...
sh rundev.sh 或 npm run devv4.0 更新内容开发架构变更,采用webpack进行模块化开发和打包开发了使用示例,更好的使用说明组件更新3.1 PC版增加布局组件,支持Fill和Border布局3.2 PC版增加ExcelImport组件3.3 栅格...