A react library to render and display excel sheets on webpage
npm install react-excel-renderer --save
- Import the primary module ExcelRenderer to convert sheet data into JSON format.
- Also import OutTable to display the obtained JSON into a HTML Table.
import {OutTable, ExcelRenderer} from 'react-excel-renderer';
- Place a simple
input
element in the render function of your class and pass anonChange
handler
<input type="file" onChange={this.fileHandler.bind(this)} style={{"padding":"10px"}} />
- In the
onChange
handler, invoke theExcelRenderer
function and provide file object from the event handler to theExcelRenderer
function to obtain JSON data from sheet
fileHandler = (event) => {
let fileObj = event.target.files[0];
//just pass the fileObj as parameter
ExcelRenderer(fileObj, (err, resp) => {
if(err){
console.log(err);
}
else{
this.setState({
cols: resp.cols,
rows: resp.rows
});
}
});
}
- Use the OutTable component to render obtained JSON data into HTML table, and provide classnames as props to make table look alike an Excel Sheet
<OutTable data={this.state.rows} columns={this.state.cols} tableClassName="ExcelTable2007" tableHeaderRowClass="heading" />
- To make this table look more like an excel sheet, follow this article - Quick CSS Tools to make your web page tables to look just like excel
Note: Once the JSON data is obatined, you can also use other options to render them instead of the OutTable component. For example, CanvasDataGrid provides various features to render tabular data.
- SheetJS - The web page sheet framework used
Ashish Deshpande - Initial work - Ashish's Github Profile
This project is licensed under the MIT License - see the LICENSE.md file for details
- Special shout out to the guys at Sheet JS for developing the parent library
- High gratitude towards Bernard Bado to help me publish my first npm package