1 <html>
2 <head>
3 <title>MyHtml.html</title>
4 <script src="http://code.jquery.com/jquery-1.4.1.min.js" type="text/javascript"></script>
5 <script type="text/javascript">
6 $(document).ready(function () {
7 $('#tablepaste').bind('paste', function (e) {
8 //消除默认粘贴
9 if (document.all) //判断IE浏览器
10 window.event.returnValue = false;
11 else event.preventDefault();
12 //获取粘贴板数据
13 var data = null;
14 var clipboardData = window.clipboardData || e.originalEvent.clipboardData; // IE || chrome
15 data = clipboardData.getData('Text');
16 data.replace(/\t/g, '\\t').replace(/\n/g, '\\n'); //data转码
17
18 //兼容IE8
19 if (!Array.prototype.filter){
20 Array.prototype.filter = function(fun){
21 if (this === void 0 || this === null)
22 throw new TypeError();
23
24 var t = Object(this);
25 var len = t.length >>> 0;
26 if (typeof fun !== "function")
27 throw new TypeError();
28
29 var res = [];
30 var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
31 for (var i = 0; i < len; i++){
32 if (i in t){
33 var val = t;
34 if (fun.call(thisArg, val, i, t))
35 res.push(val);
36 }
37 }
38 return res;
39 };
40 }
41 if (!Array.prototype.map) {
42 Array.prototype.map = function(callback, thisArg) {
43 var T, A, k;
44 if (this == null) {
45 throw new TypeError(" this is null or not defined");
46 }
47 var O = Object(this);
48 var len = O.length >>> 0;
49 if (typeof callback !== "function") {
50 throw new TypeError(callback + " is not a function");
51 }
52 if (thisArg) {
53 T = thisArg;
54 }
55 A = new Array(len);
56 k = 0;
57 while(k < len) {
58 var kValue, mappedValue;
59 if (k in O) {
60 kValue = O[ k ];
61 mappedValue = callback.call(T, kValue, k, O);
62 A[ k ] = mappedValue;
63 }
64 k++;
65 }
66 return A;
67 };
68 }
69
70 //解析数据
71 var arr = data.split('\n')
72 .filter(function (item) { //兼容Excel行末\n,防止出现多余空行
73 return (item !== "");
74 }).map(function (item) {
75 return item.split("\t");
76 });
77 //输出至网页表格
78 var tab = this; //表格DOM
79 var td = $(e.target).parents('td');
80 var startRow = td.parents('tr')[0].rowIndex;
81 var startCell = td[0].cellIndex;
82 var rows = tab.rows.length; //总行数
83 for (var i = 0; i < arr.length && startRow + i < rows; i++) {
84 var cells = tab.rows[startRow + i].cells.length; //该行总列数
85 for (var j = 0; j < arr.length && startCell + j < cells; j++) {
86 var cell = tab.rows[startRow + i].cells[startCell + j];
87 $(cell).find(':text').val(arr[j]); //找到cell下的input:text,设置value
88 }
89 }
90 });
91 });
92 </script>
93
94 </head>
95
96 <body>
97 <table id="tablepaste">
98 <thead>
99 <tr>
100 <th width="50px"><span>序号</span></th>
101 <th width="150px"><span>物料号</span></th>
102 <th width="150px"><span>产品名称</span></th>
103 <th width="70px"><span>数量</span></th>
104 <th width="90px"><span>单价</span></th>
105 <th width="90px"><span>交货期</span></th>
106 <th width="90px"><span>质保期</span></th>
107 <th width="150px"><span>产品类型</span></th>
108 </tr>
109 </thead>
110 <tbody>
111 <tr>
112 <td><span class="lineNo">1</span></td>
113 <td><input type="text" /></td>
114 <td><input type="text" /></td>
115 <td><input type="text" /></td>
116 <td><input type="text" /></td>
117 <td><input type="text" /></td>
118 <td><input type="text" /></td>
119 <td><input type="text" /></td>
120 </tr>
121 <tr>
122 <td><span class="lineNo">2</span></td>
123 <td><input type="text" /></td>
124 <td><input type="text" /></td>
125 <td><input type="text" /></td>
126 <td><input type="text" /></td>
127 <td><input type="text" /></td>
128 <td><input type="text" /></td>
129 <td><input type="text" /></td>
130 </tr>
131 <tr>
132 <td><span class="lineNo">3</span></td>
133 <td><input type="text" /></td>
134 <td><input type="text" /></td>
135 <td><input type="text" /></td>
136 <td><input type="text" /></td>
137 <td><input type="text" /></td>
138 <td><input type="text" /></td>
139 <td><input type="text" /></td>
140 </tr>
141 <tr>
142 <td><span class="lineNo">4</span></td>
143 <td><input type="text" /></td>
144 <td><input type="text" /></td>
145 <td><input type="text" /></td>
146 <td><input type="text" /></td>
147 <td><input type="text" /></td>
148 <td><input type="text" /></td>
149 <td><input type="text" /></td>
150 </tr>
151 </tbody>
152 </table>
153 </body>
154 </html>