Component, which allows you to import excel (.xlsx) documents and get their content in lightning component. Based on the XLSX.js library.
Use it, when you need your user to import .xlsx files and use its content in you lightning component and/or apex class.
To use this component, simply include it in your markup and handle the import event.
<aura:component>
...
<c:ExcelImport onImport="{!c.myImportHandlingFunction}"/>
...
</aura:component>
ExcelImport renders into a file lightning:input
component with additional handling for Excel table files.
Attribute | Type | Inherited? | Description | Default Value |
---|---|---|---|---|
label | String | Yes | Label for input | Import Excel File |
class | String | Yes | Additional classes applied to the input | |
variant | String | Yes | Input appearance | standard |
required | Boolean | Yes | Shows if input is mandatory | false |
disabled | Boolean | Yes | Disables the input | false |
accept | String | Yes | Accepted file types | .xls, .xlsx |
stretchedDropzone | Boolean | No | Makes dropzone take all available space | false |
fileSizeThreshhold | Integer | No | Max file size in bytes | 10000000 |
messageFileSizeExceeded | String | No | File size exceeded message | File size exceeded |
messageNoFileSpecified | String | No | No file specified message | No file specified |
onImport
event is a component-level event, which has this attributes:
Attribute | Type | Description |
---|---|---|
type | String | Type of the event: SUCCESS, ERROR |
message | String | Message in case of error |
fileName | String | Name of the imported file |
table | String | Parsed Excel table, see XLSX.js docs for details |
To handle onImport
event and get the parsed table object simply use event parameters:
{
...
myImportHandlingFunction: function(component, event, helper) {
let eventType = event.getParam("type");
if (eventType === "SUCCESS") {
console.log(event.getParam("fileName"));
console.log(event.getParam("table"));
}
if (eventType === "ERROR") {
console.log(event.getParam("message"));
}
}
...
})
- Make input support any type of file, processing tables only
- Improve error handling
- (?) change some of the attributes
MIT