# XLSX to JS Components
# xlsx-read
This is the basic import
component it gets an xlsx file and converts it in a js worksheet.
# Props
Name | Type | Default | Description |
---|---|---|---|
file | File | null | the file to parse from |
options | Object | {} | options object to pass to the parse function |
# Events
Name | Payload | Description |
---|---|---|
parsed | workbook | emit the processed workbook when ready |
loading | loading | emit at the start and end of the parsing process |
# Scoped Slots
# Default
Name | Value | Description |
---|---|---|
loading | Boolean | loading state |
# Example
<template>
<div>
<h3>Import XLSX</h3>
<input type="file" @change="onChange" />
<xlsx-read :file="file" >
<template #default="{loading}">
<span v-if="loading">Loading...</span>
</template>
</xlsx-read>
</div>
</template>
<script>
import { XlsxRead } from "../../dist/vue3-xlsx.cjs.prod.js";
export default {
components: {
XlsxRead
},
data() {
return {
file: null
};
},
methods: {
onChange(event) {
this.file = event.target.files ? event.target.files[0] : null;
}
}
};
</script>
# Try It!
Import XLSX
# xlsx-table
xlsx-table
is meant to be a child of xlsx-read
it automatically detect when a new xlsx file is converted to a workbook and print in the DOM as an HTML table
# Props
Name | Type | Default | Description |
---|---|---|---|
sheet | [String, Number] | 0 | the sheet number or name to print in the DOM |
options | Object | {} | options object to pass to the conversion function |
# Events
xlsx-table
does not emit any event
# Example
<template>
<div>
<h3>Import XLSX</h3>
<input type="file" @change="onChange" />
<xlsx-read :file="file">
<xlsx-table />
</xlsx-read>
</div>
</template>
<script>
import { XlsxRead, XlsxTable } from "../../dist/vue3-xlsx.cjs.prod.js";
export default {
components: {
XlsxRead,
XlsxTable
},
data() {
return {
file: null
};
},
methods: {
onChange(event) {
this.file = event.target.files ? event.target.files[0] : null;
}
}
};
</script>
# Try It!
Import XLSX
# xlsx-json
xlsx-json
is meant to be a child of xlsx-read
it automatically detect when a new xlsx file is converted to a workbook and emits a js object representation of the selected sheet, it also exposes the js object to his first slot trough scopes
# Props
Name | Type | Default | Description |
---|---|---|---|
sheet | [String, Number] | 0 | the sheet number or name to parse |
options | Object | {} | options object to pass to the conversion function |
# Events
Name | Payload | Description |
---|---|---|
parsed | Array | emit the array of objects representing the selected sheet |
# Scoped Slots
# Default
Name | Value | Description |
---|---|---|
collection | Array | array of objects representing the selected sheet |
# Example
<template>
<div>
<h3>Import XLSX</h3>
<input type="file" @change="onChange" />
<xlsx-read :file="file">
<xlsx-json>
<template #default="{collection}">
<div>
{{ collection }}
</div>
</template>
</xlsx-json>
</xlsx-read>
</div>
</template>
<script>
import { XlsxRead, XlsxJson } from "../../dist/vue3-xlsx.cjs.prod.js";
export default {
components: {
XlsxRead,
XlsxJson
},
data() {
return {
file: null
};
},
methods: {
onChange(event) {
this.file = event.target.files ? event.target.files[0] : null;
}
}
};
</script>
# Try It!
Import XLSX
# xlsx-sheets
xlsx-sheets
is meant to be a child of xlsx-read
it automatically detect when a new xlsx file is converted to a workbook and parse the available sheets
# Props
xlsx-sheets
does not have any props
# Events
Name | Payload | Description |
---|---|---|
parsed | Array | emit the array of Strings containing the name of the sheets |
# Scoped Slots
# Default
Name | Value | Description |
---|---|---|
sheets | Array | array of Strings containing the name of the sheets |
# Example
<template>
<div>
<input type="file" @change="onChange" />
<xlsx-read :file="file">
<xlsx-sheets>
<template #default="{sheets}">
<select v-model="selectedSheet">
<option v-for="sheet in sheets" :key="sheet" :value="sheet">
{{ sheet }}
</option>
</select>
</template>
</xlsx-sheets>
</xlsx-read>
</div>
</template>
<script>
import { XlsxRead, XlsxSheets } from "../../dist/vue3-xlsx.cjs.prod.js";
export default {
components: {
XlsxRead,
XlsxSheets,
},
data() {
return {
file: null,
selectedSheet: null
};
},
methods: {
onChange(event) {
this.file = event.target.files ? event.target.files[0] : null;
}
}
};
</script>