項目需求:開發一套基於Vue框架的工程檔案管理系統,用於工程項目資料的填寫、編輯和歸檔,經調研需支持以下功能:php
通過技術選型,項目組一致決定經過表格組件SpreadJS 來實現。如下是實現Excel報表的導入導出、PDF導出、打印表格的一些思路,供你們參考:vue
1.後臺:Spring Boot 2.xjquery
2.前臺:vue、vue-element、webpack、iview、Vuex.js 2.xwebpack
3.組件:SpreadJS V11web
SpreadJS 組件下載地址:https://www.grapecity.com.cn/download/?pid=57vue-router
這裏,能夠參考這篇技術博客: 3分鐘建立 SpreadJS 的 Vue 項目npm
以下是本地的一個Excel文件: json
經過SpreadJS,導入到項目中的效果: 框架
個人項目中應用了SpreadJS V12.2.5的版本(目前官網SpreadJS的最新版本是V13),其中package.json 須要添加的引用以下:iview
"dependencies": { "@grapecity/spread-excelio": "12.2.5", "@grapecity/spread-sheets": "12.2.5", "@grapecity/spread-sheets-pdf": "^12.2.5", "@grapecity/spread-sheets-print": "12.2.5", "@grapecity/spread-sheets-resources-zh": "12.2.5", "@grapecity/spread-sheets-vue": "12.2.5", "@grapecity/spread-sheets-charts": "12.2.5" , "file-saver": "2.0.2", "jquery": "2.2.1", "vue": "^2.5.2", "vue-router": "^3.0.1" },
能夠參考這篇技術博客:https://www.grapecity.com.cn/blogs/spread-sheets-v11sp1-support-npm
exportXlsx () { let ex = new ExcelIO.IO() let json = this.spread.toJSON() ex.save(json, function (blob) { FaverSaver.saveAs(blob, 'export.xlsx') }, function (e) { console.log(e) }) }, importXlsx(){ let self = this; var excelIO = new ExcelIO.IO(); console.log(excelIO); const excelFile = document.getElementById("fileDemo").files\[0\]; excelIO.open(excelFile, function (json) { let workbookObj = json; self.spread.fromJSON(workbookObj); }, function (e) { alert(e.errorMessage); }); }
savePdf(){ let self = this; let jsonString = JSON.stringify(self.spread.toJSON()); let printSpread = new GC.Spread.Sheets.Workbook(); printSpread.fromJSON(JSON.parse(jsonString)); printSpread.savePDF(function(blob) { // window.open(URL.createObjectURL(blob)) FaverSaver.saveAs(blob, 'Hello.pdf') }, function(error) { console.log(error); }, { title: 'Print', }); }
你們可下載下方的示例代碼,實現導出PDF、導入導出Excel功能。