- paste事件就是粘贴事件
- 需要通过clipboardData获得粘贴的内容
<table>
<tr>
<td @paste="pasteMe($event)"></td>
</tr>
</table>
pasteMe() {
//获得粘贴的文字
let self = this;
var data = null;
var clipboardData = e.clipboardData; // IE
if (!clipboardData) {
//chrome
clipboardData = e.originalEvent.clipboardData;
}
data = clipboardData.getData("Text");
}
//如果是要获得粘贴excel的内容,需要把粘贴的内容转换成二维数组
pasteExcel() {
let self = this;
var data = null;
var clipboardData = e.clipboardData; // IE
if (!clipboardData) {
//chrome
clipboardData = e.originalEvent.clipboardData;
}
data = clipboardData.getData("Text");
var rowStrArray = data.split("\n");
var rows = [];
for (var i = 0; i < rowStrArray.length; i++) {
var row = [];
var tdStrArray = rowStrArray[i].split("\t");
for (var j = 0; j < tdStrArray.length; j++) {
row.push(tdStrArray[j]);
}
rows.push(row);
}
//rows就是获得复制excel的二维数组
}
如果使用了element等UI框架,需要在el-input中使用粘贴事件,@paste.native
<el-input
size="mini"
v-model="value"
placeholder="0.00"
@paste.native="pasteMe"
></el-input>
欢迎关注我的个人技术公众号