解析 xls 文件(从 GET 请求接收到 URL)并将其转换为 JSON 而无需写入磁盘
Parse and convert xls file (received from GET request to URL) to JSON without writing to disk
标题说明了一切。
我想从第三方服务器获取 xls 文件。 (说服务一直加油
记录,并且它们不公开任何类型的 api,仅公开 excel 文件)。
然后使用 node-excel-to-json 等库解析该文件,并将其转换为 JSON 格式,我可以使用该格式将数据导入 mongo.
我想操作文件 in-memory,而不将其写入磁盘。
所以,假设我正在使用此代码获取文件,
parseFuelingReport() {
let http = require('http');
let fs = require('fs');
// let excel2Json = require('node-excel-to-json');
let file = fs.createWriteStream("document.xls");
let request = http.get("http://www.everydayexcel.com/files/Excel_Test_Basic_1_cumulative_sum.xls", function (response) {
});
},
我想在内存中加载响应并用类似
的东西解析它
excel2Json(/* this is supposed to be the path to the xls file */, {
'convert_all_sheet': false,
'return_type': 'File',
'sheetName': 'survey'
}, function (err, output) {
console.log('err, res', err, output);
});
我假设您正在使用 https://github.com/kashifeqbal/node-excel-to-json,它可以作为节点包使用。
如果你看一下 this line,
你可以看到两件事:
- 它调用
XLSX.readFile(filePath);
,将从磁盘加载文件。很难用 in-memory 中的对象调用。
- 它在内部使用 XLSX 包,很可能是这个:https://www.npmjs.com/package/xlsx
XLSX API 似乎不如 excel2Json 方便,但它提供了一个 read() 函数一个 JavaScript 对象:
/* Call XLSX */
var workbook = XLSX.read(bstr, {type:"binary"});
希望这对您有所帮助
标题说明了一切。
我想从第三方服务器获取 xls 文件。 (说服务一直加油 记录,并且它们不公开任何类型的 api,仅公开 excel 文件)。 然后使用 node-excel-to-json 等库解析该文件,并将其转换为 JSON 格式,我可以使用该格式将数据导入 mongo.
我想操作文件 in-memory,而不将其写入磁盘。 所以,假设我正在使用此代码获取文件,
parseFuelingReport() {
let http = require('http');
let fs = require('fs');
// let excel2Json = require('node-excel-to-json');
let file = fs.createWriteStream("document.xls");
let request = http.get("http://www.everydayexcel.com/files/Excel_Test_Basic_1_cumulative_sum.xls", function (response) {
});
},
我想在内存中加载响应并用类似
的东西解析它 excel2Json(/* this is supposed to be the path to the xls file */, {
'convert_all_sheet': false,
'return_type': 'File',
'sheetName': 'survey'
}, function (err, output) {
console.log('err, res', err, output);
});
我假设您正在使用 https://github.com/kashifeqbal/node-excel-to-json,它可以作为节点包使用。
如果你看一下 this line, 你可以看到两件事:
- 它调用
XLSX.readFile(filePath);
,将从磁盘加载文件。很难用 in-memory 中的对象调用。 - 它在内部使用 XLSX 包,很可能是这个:https://www.npmjs.com/package/xlsx
XLSX API 似乎不如 excel2Json 方便,但它提供了一个 read() 函数一个 JavaScript 对象:
/* Call XLSX */
var workbook = XLSX.read(bstr, {type:"binary"});
希望这对您有所帮助