android webservices 返回多行多列数据,[转载]让WebFxGrid支持从Excel中多行多列拷贝

最近研究WebFx的Grid(http://webfx.eae.net/dhtml/grid/intro.html)的用法。其中有一个需求:要求支持从Excel中多行多列地拷贝。一直觉得要让这种用js写的控件支持从Excel中多行多列拷贝是不大可能的。后来看google的在线电子表格(http://spreadsheet.google.com)支持从Excel中多行多列地拷贝,同事的想法启法了我。"居然google的就支持从Excel多行多列拷贝,它应该是操作剪贴板的内容,我们也可以操作剪贴板的内容,以excel对象的那种"。开始研究用

var txt =

clipboardData.getData(‘text’);获取剪贴板的内容,并用alert(txt)打印出txt的内容发现这些数据是有规律的:

a4c26d1e5885305701be709a3d33442f.pnga4c26d1e5885305701be709a3d33442f.png

每一行之间是用”n”来表示的, 同一行中相邻的单元格之间是用“

”这些空格来表示的。用下面这个双层循环即可依次求出每个单元格的内容。

function myfun(){ var txt = clipboardData.getData('text'); var

txtArr = txt.split("n"); for(var i = 0; i < txtArr.length;

i++){ var ptxArr = txtArr[i].split(" "); for(var j = 0; j <

ptxArr.length; j++){ alert(ptxArr[j]); } }

所以给WebFx-Grid的每个单元格加上一个右键菜单,如(﹤div

class="menuitems" url="#" οnclick="grid_paste()"﹥粘贴﹤/div﹥),grid_paste()方法如下:

//----- paste function ---------------------- var srcElement;

function grid_paste(){ // get current cell var e =

getElement(srcElement); // get the cell id var grid_cell_id = e.id;

paste(grid_cell_id); } //----- copy operate common -------------

function paste(grid_cell_id){ var txt =

clipboardData.getData('text'); if(txt == null) {return}; var

row_txtArr = txt.split("n"); var cell_txt = ""; // 1.get the total

row numbers (求出共有的行数) var rowsLen = oGrid.rows.length; //

2.get the total column numbers (求出共有的列数) var colsLen =

oGrid.rows[0].cells.length; var idPrefix = new

String("webfx-grid-object-"); var cell_num_id =

grid_cell_id.substring(idPrefix.length,grid_cell_id.length); var

len = row_txtArr.length; if(len > 1){len = len -1;} for(var i =

0; i < len; i++){ cell_txt = row_txtArr[i].split(" "); for(var j

= 0; j < cell_txt.length; j++){ var increment = i*(colsLen+1);

var countId = parseInt(cell_num_id) + parseInt(increment) +

parseInt(j); var id = idPrefix + countId; var cell_td =

document.getElementByIdx(id); var cell_span = cell_td.firstChild;

cell_span.innerText = cell_txt[j]; } } }

效果图如下:

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值