Getting Started
1. Get the package:
WARNING
The method implemented in this component uses HTML tables to draw the .xls files, Microsoft Excel no longer recognize HTML as native content so a warning message will be displayed before opening the file. The content will be rendered perfectly but the message can't be avoided.
cmd
npm install vue-json-excel3
Register JsonExcel in your vue app entry point:
2. Register JsonExcel in your vue app entry point:
js
import {createApp} from 'vue'
const app = createApp({})
import JsonExcel from "vue-json-excel3";
app.component("downloadExcel", JsonExcel);
3. In your template
html
<download-excel :data="json_data">
Download Data
<img src="download_icon.png"/>
</download-excel>
Props List
Name | Type | Description | Default |
---|---|---|---|
data | Array | Data to be exported. | |
fields | Object | Fields inside the JSON Object that you want to export. If none provided, all properties in the JSON will be exported. | |
export-fields (exportFields) | Object | Used to fix the problem with other components that use the variable fields, like vee-validate. exportFields works exactly like fields | |
type | string | Mime type [xls, csv, xlsx] | xls |
name | string | File name to export. | data.xls |
header | string/Array | Title(s) for the data. Can be a string (one title) or an array of strings (multiple titles). | |
title(deprecated) | string/Array | same as header, title is maintained for retro-compatibility purposes but its use is not recommended due to the conflict with the HTML5 title attribute. | |
footer | string/Array | Footer(s) for the data. Can be a string (one footer) or an array of strings (multiple footers). | |
default-value (defaultValue) | string | Use as fallback when the row has no field values. | '' |
worksheet | string | Name of the worksheet tab. | 'Sheet1' |
fetch | Function | Callback to fetch data before download, if it's set it runs immediately after mouse pressed and before download process. IMPORTANT: only works if no data prop is defined. | |
before-generate | Function | Callback to call a method right before the generate / fetch data, eg:show loading progress | |
before-finish | Function | Callback to call a method right before the download box pops out, eg:hide loading progress | |
stringifyLongNum | Boolean | stringify long number and decimal(solve the problem of loss of digital accuracy), default: false | |
escapeCsv | Boolean | This escapes CSV values in order to fix some excel problems with number fields. But this will wrap every csv data with ** | |
="** and ", to avoid that you have to set this prop to false. default: True | |||
emitBlob | Boolean | This will emmit the blob data. default: False | |
debounce | Number | This is for debouce in download function | 500 |
rtl | Boolean | This is for RTL support | false |