例如我们要把execl中的一批数据(如图1)copy到我们程序中(如图2)。
图1:
图2:
js:
function pasteColumns(element,e){
//CTRL+V键
if(event.ctrlKey && window.event.keyCode == 86){
//定位到当前想要粘贴的起始行
var $tr;
var $trNew;
var $cellNew;
$tr = null;
$tr = $(element).parents("tr");
//起始列
var columnBeginTag = $(element).attr("monthTag")==''?parseFloat('1'):parseFloat($(element).attr("monthTag"));
//获取内容将要粘贴到的区域,未包含当前行
var trs = $tr.nextAll("tr[trTag='detailColumn']");
//获取缓存复制或者剪切出来的数据,text只取出文本内容,不包括文件、图像
var clipText = window.clipboardData.getData('Text');
//分隔每个单元格的数据 ,13标示enter键、9标示tab键产生的效果
var clipRows = clipText.split(String.fromCharCode(13));
for (var i=0; i<clipRows.length; i++) {
clipRows[i] = clipRows[i].split(String.fromCharCode(9));
}
for (var i=0; i<clipRows.length - 1; i++) {
$trNew = null;
$trNew = i==0?$tr:$(trs[i-1]);
if($trNew.length != 0){
var monthTag = parseFloat(columnBeginTag);
for (j=0; j<clipRows[i].length; j++) {
$cellNew = null;
$cellNew = $trNew.find("input[monthTag='"+parseFloat(monthTag + j)+"']");
if($cellNew.length != 0){
if (clipRows[i][j].length == 0) {
$cellNew.val('0');
}else {
$cellNew.val(clipRows[i][j]);
}
$cellNew.blur();
}
}
}
}
}
}