在网上找了好久,将Excel的内容复制到EasyUI的dataGrid里,都没有找到相应的解决方案,于自己写了段JS,性能也可以,经过测试复制Excel里10006条数据,只需要10秒左右。
JS:comm.component.js
var comm = {};comm.clipboard = {};
//ctrol + v 事件
comm.clipboard._cellkeydown = function(event, id, gid){
var _id = id;
if (event.ctrlKey && event.keyCode == 86 && id) {
var _help = document.getElementById(id);
_help.focus();
_help.select();
var fncall = "comm.clipboard._dealwithData('"+_id+"','"+gid+"')";
setTimeout(fncall,50);
}
_help = fncall = event = id = null;
}
//将粘贴事件转移到textArea中
comm.clipboard._dealwithData = function(id, gid){
var _help = document.getElementById(id);
_help.blur();
var excelValues = comm.clipboard._getColumnsByClipboard($(_help).val()),
rowIndex = comm.clipboard.curIdx,
field = comm.clipboard.curField;
comm.datagrid.excel2grid(gid,rowIndex,field,excelValues);
_help = id = null;
}
//将贴过来的Excel中内容分解成数组
comm.clipboard._getColumnsByClipboard = function(context){
var cols= [];
if(context){
cols = context.split('\n');
if('' == cols[cols.length - 1]){
cols.pop();
}
}
context = null;
return cols;
}
/**
*设置gridid在idx行的第fieldName列为fieldValue
*@gridid grid的I