有没有一种标准的方法或者库可以从电子表格复制粘贴到web表单?当我从Excel中选择多个单元格时,我(显然)丢失了分隔符,所有单元格都被粘贴到web表单的一个单元格中。一定要在VB中完成吗?或者,是否可以在web表单上启动粘贴操作后即可完成处理?
发布于 2010-01-05 22:14:05
您不会丢失分隔符,单元格用制表符(\t
)和换行符(\n
)分隔,这在表单中可能看不到。自己尝试一下:将内容从Excel复制到记事本,你会看到你的单元格排列得很整齐。然后很容易将字段按制表符拆分,并用其他内容替换它们,这样您甚至可以用它们构建一个表。下面是一个使用jQuery的示例:
var data = $('input[name=excel_data]').val();
var rows = data.split("\n");
var table = $('<table />');
for(var y in rows) {
var cells = rows[y].split("\t");
var row = $('<tr />');
for(var x in cells) {
row.append('<td>'+cells[x]+'</td>');
}
table.append(row);
}
// Insert into DOM
$('#excel_table').html(table);
因此,本质上,此脚本从粘贴的Excel数据创建一个HTML表。
发布于 2014-07-08 22:19:10
为了响应Tatu的回答,我创建了一个快速jsFiddle来展示他的解决方案:
http://jsfiddle.net/duwood/sTX7y/
HTML
<p>Paste excel data here:</p>
<textarea name="excel_data" style="width:250px;height:150px;"></textarea><br>
<input type="button" onclick="javascript:generateTable()" value="Genereate Table"/>
<br><br>
<p>Table data will appear below</p>
<hr>
<div id="excel_table"></div>
JS
function generateTable() {
var data = $('textarea[name=excel_data]').val();
console.log(data);
var rows = data.split("\n");
var table = $('<table />');
for(var y in rows) {
var cells = rows[y].split("\t");
var row = $('<tr />');
for(var x in cells) {
row.append('<td>'+cells[x]+'</td>');
}
table.append(row);
}
// Insert into DOM
$('#excel_table').html(table);
}
发布于 2013-09-22 06:08:28
在OSX和Windows上,有多种类型的剪贴板用于处理不同类型的内容。在Excel中复制内容时,数据以纯文本和html剪贴板的形式存储。
正确的方法(不会因分隔符问题而出错)是解析HTML。http://jsbin.com/uwuvan/5是一个简单的演示,它展示了如何获取超文本标记语言剪贴板。关键是绑定到onpaste事件并读取
event.clipboardData.getData('text/html')
https://stackoverflow.com/questions/2006468
复制相似问题