use*_*758 18 javascript csv user-input reactjs
我希望用户上传.csv文件,然后让浏览器能够解析该文件中的数据.我正在使用ReactJS.这怎么样?谢谢.
use*_*758 20
弄清楚了.的组合反应文件阅读器和HTML5的的FileReader(见本页).
将react-document-reader位放在render中:
<ReactFileReader handleFiles={this.handleFiles} fileTypes={'.csv'}>
<button className='btn'>Upload</button>
</ReactFileReader>
Run Code Online (Sandbox Code Playgroud)
然后上面这个.
handleFiles = files => {
var reader = new FileReader();
reader.onload = function(e) {
// Use reader.result
alert(reader.result)
}
reader.readAsText(files[0]);
}
Run Code Online (Sandbox Code Playgroud)
ttf*_*man 16
我会使用 Papa Parse ( https://www.npmjs.com/package/papaparse )。这是一个示例反应组件:
class FileReader extends React.Component {
constructor() {
super();
this.state = {
csvfile: undefined
};
this.updateData = this.updateData.bind(this);
}
handleChange = event => {
this.setState({
csvfile: event.target.files[0]
});
};
importCSV = () => {
const { csvfile } = this.state;
Papa.parse(csvfile, {
complete: this.updateData,
header: true
});
};
updateData(result) {
var data = result.data;
console.log(data);
}
render() {
console.log(this.state.csvfile);
return (
<div className="App">
<h2>Import CSV File!</h2>
<input
className="csv-input"
type="file"
ref={input => {
this.filesInput = input;
}}
name="file"
placeholder={null}
onChange={this.handleChange}
/>
<p />
<button onClick={this.importCSV}> Upload now!</button>
</div>
);
}
}
export default FileReader;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28742 次 |
| 最近记录: |