Nom*_*Ali 11 javascript excel jquery reactjs
在尝试读取Reactjs中的excel文件时,我正在尝试并试探我的脑袋.
我已经尝试了多个库,如Sheetjs,excel-parser,exceljs等(如8-9)库.
我在每个库中都会遇到奇怪和不同的错误.
例如,我使用excel-parser并获得以下错误
Module not found: 'child_process'
Run Code Online (Sandbox Code Playgroud)
那是因为它是一个节点模块,不能在浏览器中工作.
有人知道一些好的和简单的库可以在浏览器中使用reactjs吗?
Nom*_*Ali 13
我已经使用Sheetjs的npm版本xlsx成功读取了excel文件.
这是代码:
import * as XLSX from 'xlsx';
//f = file
var name = f.name;
const reader = new FileReader();
reader.onload = (evt) => { // evt = on_file_select event
/* Parse data */
const bstr = evt.target.result;
const wb = XLSX.read(bstr, {type:'binary'});
/* Get first worksheet */
const wsname = wb.SheetNames[0];
const ws = wb.Sheets[wsname];
/* Convert array of arrays */
const data = XLSX.utils.sheet_to_csv(ws, {header:1});
/* Update state */
console.log("Data>>>"+data);
};
reader.readAsBinaryString(f);
Run Code Online (Sandbox Code Playgroud)
小智 13
诺曼阿里!谢谢你。
我用过,这个代码
const handleUpload = (e) => {
e.preventDefault();
var files = e.target.files, f = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var data = e.target.result;
let readedData = XLSX.read(data, {type: 'binary'});
const wsname = readedData.SheetNames[0];
const ws = readedData.Sheets[wsname];
/* Convert array to json*/
const dataParse = XLSX.utils.sheet_to_json(ws, {header:1});
setFileUploaded(dataParse);
};
reader.readAsBinaryString(f)
}
Run Code Online (Sandbox Code Playgroud)
小智 6
此处找到的最简单的方法之一:此方法也适用于读取 .xlsx、.txt 或其他格式。
片段:
import * as XLSX from 'xlsx';
...
<input
type="file"
onInput={(e) => this._handleFile(e)}
/>
...
private _handleFile = async (e: any) => {
console.log('reading input file:');
const file = e.target.files[0];
const data = await file.arrayBuffer();
const workbook = XLSX.read(data);
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
const jsonData = XLSX.utils.sheet_to_json(worksheet, {
header: 1,
defval: "",
});
//console.log(e.target.files[0]);
//console.log(workbook);
console.log(jsonData);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18439 次 |
| 最近记录: |