轉(zhuǎn)帖|使用教程|編輯:王香|2019-03-05 13:25:38.000|閱讀 508 次
概述:SpreadJS表格控件有著很強(qiáng)大的純前端的導(dǎo)入導(dǎo)出功能,可以直接在純前端導(dǎo)入導(dǎo)出Excel,通過擴(kuò)展還可以實(shí)現(xiàn)服務(wù)器端導(dǎo)入導(dǎo)出。是用戶最常使用的功能之一。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
SpreadJS表格控件有著很強(qiáng)大的純前端的導(dǎo)入導(dǎo)出功能,可以直接在純前端導(dǎo)入導(dǎo)出Excel,通過擴(kuò)展還可以實(shí)現(xiàn)服務(wù)器端導(dǎo)入導(dǎo)出。是用戶最常使用的功能之一。
導(dǎo)入導(dǎo)出功能需要在引入SpreadJS基本JS文件的基礎(chǔ)上額外引入兩個(gè)文件:
1、 gc.spread.excelio.xx.x.x.min.js是導(dǎo)入導(dǎo)出的核心文件,里面包含了導(dǎo)出導(dǎo)出的邏輯,將用戶提供的表格序列化ssjson文件轉(zhuǎn)換成Excel類型(前端對(duì)應(yīng)為application/zip)的一個(gè)blob二進(jìn)制對(duì)象。這里注意因為Excel本身是一個(gè)壓縮格式,所以轉(zhuǎn)換的對(duì)象類型對(duì)應(yīng)為application/zip,如果需要轉(zhuǎn)換為其他形式,請(qǐng)自行處理,例如將該對(duì)象base64編碼后轉(zhuǎn)換為字符串或者流等。
2、 FileSaver.js是第三方開源的一個(gè)js組件,用戶做前端文件下載保存的功能。故而不是必須的,也可以自己處理相關(guān)操作或者用其他的類型功能組件進(jìn)行替換。這里注意的是如果需要導(dǎo)出至服務(wù)器端,那么不需要引入此js文件。可以直接將blob對(duì)象通過請(qǐng)求發(fā)至服務(wù)器端并在服務(wù)器端保存成Excel格式的文件即可。
SpreadJS本身使用了html5的canvas技術(shù),所以瀏覽器支持必須是支持html5的瀏覽器,例如:chrome,firefox,IE9以上等。
而導(dǎo)入導(dǎo)出功能按照上面所說如果要使用filesaver來做前端下載,那么IE瀏覽器需要10以上的版本才能支持FileSaver.js,這里跟SpreadJS本身的瀏覽器支持有些出入。
如果是一般的html+js+css這樣的web應(yīng)用開發(fā),導(dǎo)入導(dǎo)出組件不需要授權(quán)。只需要對(duì)SpreadJS進(jìn)行授權(quán)即可。
如果是typescript開發(fā)常見于:angular,react,vue等框架使用,需要對(duì)導(dǎo)入導(dǎo)出組件(ExcelIO)進(jìn)行單獨(dú)授權(quán),像這樣:
GC.Spread.Sheets.LicenseKey = Excel.LicenseKey = "yourkey";
由于我們示例代碼中導(dǎo)入導(dǎo)出部分加入了try catch的異常捕獲,這樣會(huì)導(dǎo)致異常很難定位,這里列出常見可能會(huì)出問題的情況:
如果上述仍然沒有排查出問題,可以將try catch的異常捕獲去掉來定位原因。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn