2015-07-24 6 views
1

Я использую пакет ниже, чтобы попытаться преобразовать загруженные файлы Excel (.xlsx) в JSON файлов на моем веб-приложение Экспресс:Невозможно получить XLSX в JSON конвертер для правильной работы в узле/Экспресс

https://www.npmjs.com/package/xlsx-to-json

Так вот моя форма для пользователя, чтобы загрузить:

 form(id = "form1", action="/upload", method="post", enctype="multipart/form-data") 
      input(type="file", id="control", name="XLupload") 
      br 
      input(type="submit" value="Upload" name="Submit") 

и вот моя маршрутизация для загрузки обратно в моем основном экспрессе-файл (app.js):

var multer = require('multer'); 
var upload = multer({dest: './uploads'}); 
var excel_upload = upload.single('XLupload'); 

app.post('/upload', excel_upload, function(req, res) { 

var fileObject = req.file; 
var filePath = fileObject.path; 
/*** This is what the file Object looks like when uploaded: 
{ fieldname: 'XLupload', 
    originalname: 'testing.xlsx', 
    encoding: '7bit', 
    mimetype: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 

    destination: './uploads', 
    filename: 'c1d55ea7d1f6fccc7e3d3d2764db8881', 
    path: 'uploads\\c1d55ea7d1f6fccc7e3d3d2764db8881', 
    size: 8013 } 
***/ 

xlsxj({ 
    input: String(filePath), 
    output: "output.json" 
    }, function(err, result) { 
     if (err) { 
      console.log(err); 
     } else { 
      console.log(result); 
      } 
     }); 
}); 

В любом случае, если это так, закачки, похоже, работают нормально, то есть они загружаются в папку/uploads в каталоге. Однако файл JSON, который я получаю из конвертера xlsxj, пуст, и я не уверен, почему. Я сделал небольшой тестовый файл xlsx с некоторыми словами в случайных ячейках, и он по-прежнему возвращает мне пустой [] в output.json. Кто-нибудь может сообщить мне, что я делаю неправильно?

ответ

0

Вы можете попробовать использовать эту библиотеку XLSX (https://github.com/SheetJS/js-xlsx) и добавить этот код после получения workssheet

var roa = XLSX.utils.sheet_to_row_object_array(worksheet);