使用Javascript,如何创建一个HTML表格,可以从excel(或谷歌电子表格)"接受"数字矩阵数据,通过电子表格中的"复制",然后"粘贴"到浏览器中的表格中.
这只能在IE上可靠地工作,因为Firefox(可能还有其他人)不允许访问剪贴板而没有特别允许它; 早先粘贴到textarea的建议可能比这更好.
从电子表格复制时,通常使用制表符(chr9)和带有CR(chr13)的行分隔单元格.此脚本将剪贴板转换为2D数组,然后从中构建表.不太优雅,但它似乎工作从Excel复制数据.
这是我创建的javascript代码(基于有用的答案).我是javascript的新手,所以我确信有更好的方法可以做到这一点,但它似乎有效......目标是从电子表格中将两列数字数据"粘贴"到文本区域(I已经尝试了excel和谷歌电子表格)并创建浮点向量"xf"和"yf".希望对某人有用.批评欢迎......
它假设这些存在于html页面上......
function psmtest(){var psmtext = document.getElementById("psmtext"); var st = psmtext.value; Ast = st.split("\n"); var numrows = Ast.length;
var ii; var xs = []; var ys = []; for (ii = 0 ; ii < numrows ; ii++) { // tab or comma deliminated data if ( Ast[ii].split(",",2)[1] != null ){ ys[ii] = Ast[ii].split(",")[1]; xs[ii] = Ast[ii].split(",")[0];} if ( Ast[ii].split("\t",2)[1] != null ){ ys[ii] = Ast[ii].split("\t")[1]; xs[ii] = Ast[ii].split("\t")[0];} }
var xss = []; var yss = []; var numgoodrows = 0; var iii =0; for (ii = 0 ; ii < numrows ; ii++) { if ( xs[ii] != null && ys[ii] != null) { xss[iii] = xs[ii]; yss[iii] = ys[ii]; iii++; } } numgoodrows = iii; // next I need to convert to floating point array var xf = [], var yf = [];
var xf = []; var yf = []; for (ii = 0 ; ii < numgoodrows ; ii++) { xf[ii] = parseFloat(xss[ii]); yf[ii] = parseFloat(yss[ii]); }
}