Html table 實現Excel多格貼上

2022-08-14 07:12:14 字數 1920 閱讀 9353

實現的就是這樣的乙個效果,從excel或number複製好多行資料後,直接在table起始單元格按下c+v,**資料立馬就齊刷刷站好位了!強迫症表示看著好爽感!

簡單到不行的原理:給**元素繫結貼上事件,做到這四件事就可以啦(案例**依賴jquery框架):

消除預設貼上事件

e.preventdefault();
獲取貼上板上的資料

var data = null;  

var clipboarddata = window.clipboarddata || e.originalevent.clipboarddata; // ie || chrome

data = clipboarddata.getdata('text');

複製出來的資料是用製表符\t和換行符\n隔開的資料,顯示出來是帶空格的一系列字串,如果在除錯時想要清楚的檢視帶\t,\n的字串,可以把字串\t\n替換成成\\t \\n:

通過製表符和換行符解析資料,先通過換行符將不同行陣列分開成陣列,再把每個單元格資料通過製表符分開,同樣構造成陣列。

//解析資料

var arr = data.split('\n')

.filter(function(item) ).map(function(item) );

//最終資料模式

[ [a0,a1,a2],//row1

[b0,b1,b2],//row2

[c0,c1,c2],//row3

]

把解析好的資料放在相應單元格

var tab = this;  //**dom

var td = $(e.target).parents('td'); //起始單元格

var startrow = td.parents('tr')[0].rowindex; //起始單元格行數

var startcell = td[0].cellindex; //起始單元格列數

var rows = tab.rows.length; //總行數

for (var i = 0; i < arr.length && startrow + i < rows; i++)

}

需要注意的是在進行行或列的迴圈時,除了判斷迴圈數i/j小於複製資料的行/列數外,還要判斷當前所在行/列是否小於**的總行/列數;

最終實現的**如下:

$('table').bind('paste', function(e) ).map(function(item) );

//輸出至網頁**

var tab = this; //**dom

var td = $(e.target).parents('td');

var startrow = td.parents('tr')[0].rowindex;

var startcell = td[0].cellindex;

var rows = tab.rows.length; //總行數

for (var i = 0; i < arr.length && startrow + i < rows; i++)

}});

只要把這一段綁在**上,就可以華麗麗的實現多單元格複製啦~不過因為table單元格內的dom結構會有所差異,所以在迴圈內給單元格賦值時要留意下有沒有問題。

html Table實現表頭固定

最近一直在搞前台瑣碎的東西,也學習了一下linux,沒有時間對新的東西進行深入的研究和學習,沒有寫部落格,不過歸咎其原因還是在於自己的惰怠。廢話不多說,今天想將乙個前台頁面設計的乙個小東西分享一下,那就是平時我們設計 的時候,通常都想將 的頭部進行固定,而 的body部分能夠進行滾動的效果,其實這個...

HTML table使用詳解

對於table來說,在一些小的模組中進行 布局是非常好用的。我們可以這樣來理解table,主要分成table部分和td部分。table部分 主要是來控制外邊框的 就是最外面一層邊框,不包括裡面部分 它擁有的屬性為 margin屬性,border屬性,cellspacing屬性,規定單元格之間的空白c...

HTML table使用總結

在html中,使用table標籤來建立乙個 在table標籤中使用tr來表示 中的一行,有幾行就有幾個tr 在tr中需要使用td來建立乙個單元格,有幾個單元格就有幾個td。rowspan用來設定縱向的合併單元格,colspan用來設定橫向的合併單元格。使用場景 有一些情況下 是非常的長的,這時就需要...