2017-02-19 4 views
0

Название говорит обо всем.Анализ и преобразование xls-файла (полученного от запроса GET к URL-адресу) в JSON без записи на диск

Я хочу получить файл xls с стороннего сервера. (указанная служба сохраняет заправки записей, и они не раскрывают какой-либо api, только файл excel). Затем проанализируйте этот файл с библиотекой как node-excel-to-json и преобразуйте его в формат JSON, который я могу использовать для импорта данных в mongo.

Я хочу манипулировать файлом в памяти, не записывая его на диск. Так, скажем, я получаю файл с этим кодом,

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); 
     }); 

ответ

0

Я предполагаю, что вы используете https://github.com/kashifeqbal/node-excel-to-json, который доступный как пакет узлов.

Если вы посмотрите на this line, вы можете увидеть, две вещи:

  • Он называет XLSX.readFile(filePath);, что будет загружать файл с диска. Трудно назвать с объектом в памяти в
  • Внутренне он использует пакет XLSX, скорее всего, это:. https://www.npmjs.com/package/xlsx

XLSX API, кажется, не так удобно, как excel2Json, но обеспечивает чтения() функции, которая принимает объект JavaScript:

/* Call XLSX */ 
var workbook = XLSX.read(bstr, {type:"binary"}); 

Надеется, что это помогает