在項目開發時免不了有時會用到表格數據導出excel的功能,之前會用file-saver xlsx script-loader來導出,並且配置很是麻煩,如今用vue-json-excel配置及使用都很是簡單vue
1、安裝vue-json-excel
npm install vue-json-excel -S
- 1
2、main.js裏面引入並註冊使用
import JsonExcel from 'vue-json-excel' Vue.component('downloadExcel', JsonExcel)
3、頁面中使用
<download-excel class = "export-excel-wrapper" :data = "json_data" :fields = "json_fields" name = "filename.xls"> <!-- 上面能夠自定義本身的樣式,還能夠引用其餘組件button --> <!-- <el-button type="primary" size="small">導出EXCEL</el-button> --> </download-excel>
在這裏說明一下組件的各個屬性npm
- json_data:須要導出的數據
- json_fields:自主選擇要導出的字段,若不指定,默認導出所有數據中心所有字段
屬性名 | 類型 | 描述 |
---|---|---|
data | Array | 須要導出的數據,支持中文 |
fields | Object | 定義須要導出數據的字段 |
name | String | 導出excel的文件名 |
type | String | 導出excel的文件類型(xls,csv),默認是xls |
下面給個實例json
注意如下幾點markdown
- json_fields裏面的屬性是excel表每一列的title,注意多個詞組組成的屬性名要加雙引號
- 若是須要自定義導出的數據,能夠定義回調函數。
data() { return { json_fields: { "Complete name": "name", //常規字段 Telephone: "phone.mobile", //支持嵌套屬性 "Telephone 2": { field: "phone.landline", //自定義回調函數 callback: value => { return `Landline Phone - ${value}`; } } }, json_data: [ { name: "Tony Peña", city: "New York", country: "United States", birthdate: "1978-03-15", phone: { mobile: "1-541-754-3010", landline: "(541) 754-3010" } }, { name: "Thessaloniki", city: "Athens", country: "Greece", birthdate: "1987-11-23", phone: { mobile: "+1 855 275 5071", landline: "(2741) 2621-244" } } ], json_meta: [ [ { " key ": " charset ", " value ": " utf- 8 " } ] ] }; }