我正在尝试导入包含多个具有不同数据集的列的Excel工作表,并将其显示在react组件中。
目前我在做,
<ReactFileReader handleFiles={this.handleFiles} fileType={'.xlsx'}>
<button>Import</button>
</ReactFileReader>
然后
handleFiles = files =>{
var fileDisplayArea = this.refs.fileDisplayArea;
var reader = new FileReader();
reader.onload = function(e){
fileDisplayArea.innerHTML = reader.result;
}
reader.readAsText(files[0], 'utf-8');
}
虽然这会导入文件,但在渲染时会显示所有垃圾字符。 任何帮助将不胜感激。
谢谢,
维克拉姆
答案 0 :(得分:0)
为此有一个完美的库!它将首先将excel数据转换为JSON,然后将其呈现为HTML表。它叫react-excel-renderer
npm install react-excel-renderer --save
import {ExcelRenderer, OutTable} from 'react-excel-renderer';
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
});
}
});
}
<OutTable data={this.state.rows} columns={this.state.cols} tableClassName="ExcelTable2007" tableHeaderRowClass="heading" />
就这样!完成了!
可以找到一个相同的演示here