日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

html粘贴excel内容,如何用JS解析剪切板里的excel内容

發布時間:2025/4/16 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html粘贴excel内容,如何用JS解析剪切板里的excel内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

這次記錄的是昨晚一個想法:把excel內容復制到剪切板并轉成自己想要的json格式,核心是要把excel內容轉json,這部分主要看excel的格式和json如何業務的映射,不展開。倒是通過實踐,收獲了剪切板的一些知識點。

注:因為只是為了自己的小工具實現,不考慮兼容,在chrome下實踐

整個步驟是:

從一封有內容的excel里,選中內容,ctrl+c復制到剪切板(剛好我的內容就是整張表,ctrl+A就可以選中內容)

粘貼到web頁面,js監聽paste事件,從剪切板對象里獲得復制的excel內容(含格式)

將內容解析處理成自己的格式【擴展補充】

這里主要可以分為三點:

1. 粘貼事件和剪切板

document.addEventListener('paste', event => {

// event里的clipboardData對象

console.log(event.clipboardData)

})

粘貼事件觸發時,可以從event里獲取到clipboardData

不過里面使用時還用了window.clipboardData,我在chrome和codepen下試驗,都沒獲取到內容。

2. 剪切板里的內容格式

在上一部分的代碼打印到控制臺,會有個疑惑,就是控制臺打出來一個DataTransfer對象,但其實這個對象在控制臺展開時屬性不是沒有值就是空數組,很懵逼。

直到我往里面console屬性內容,才找到。

在這個對象里,getData是它的常用方法,用于獲取數據內容,它需要接受一個DOMString的參數。

一般常用的是粘貼純文本,純文本 getData('text') 即可獲得。

但我要的是excel的格式,一開始并不知道excel是啥格式,但是從excel拷貝再粘貼回excel,格式依然保留,所以想著剪切板應該還保留原內容的格式,所以就嘗試下。

通過遍歷打印出DataTransfer對象的types屬性,可以能知曉

document.addEventListener('paste', event => {

event.clipboardData.types.map(type=>{console.log(type)})

})

types有三個值:text/plain,text/html,Files

于是用types的‘text/html',和getData一試,果然拿到了帶格式的內容,實際上是一段html代碼字符串

大致如下

...

...

通過觀察得知,想要的內容就是html代碼里的table,接下來要轉格式就好辦了,搞定解析html字符串,用選擇器的方式獲取單元格內容就差不多了。

3. 如何解析html字符串

這里著實耗費了我不少時間,后面找到了DOMParser,原來原生就支持解析html字符串>>

通過 (new DOMParser()).parseFromString,將字符串轉為DOM

const html = event.clipboardData.getData('text/html');

const $doc = new DOMParser().parseFromString(html,'text/html');

// 加載所有的行

const $trs = Array.from($doc.querySelectorAll('table tr'));

于是就可以愉快的querySelectorAll了。

以上就是如何用JS解析剪切板里的excel內容的詳細內容,更多關于JS解析剪切板里的excel內容的資料請關注腳本之家其它相關文章!

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的html粘贴excel内容,如何用JS解析剪切板里的excel内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。