将JSON数据转换为可下载的Excel

时间:2015-10-23 21:40:42

标签: javascript json excel filesaver.js

我正在尝试将JSON数据转换为JavaScript代码中的可下载Excel文件。我试过use但是无法让它发挥作用。从文档中,我正在复制与下面给出的完全相同的代码:

var json2xls = require('json2xls');
var json = {
    foo: 'bar',
    qux: 'moo',
    poo: 123,
    stux: new Date()
}

var xls = json2xls(json);

fs.writeFileSync('data.xlsx', xls, 'binary');

但是我收到了这个错误:

TypeError: fs.writeFileSync is not a function

我也尝试过调查FileSaver.js here,但它似乎只适用于文本blob。

是否有下载Excel文件的替代方法?

1 个答案:

答案 0 :(得分:0)

尝试放

代码顶部的

var fs = require("fs");,如果它还没有

修改

我尝试了你的代码,并让它工作。我怀疑你的节点版本没有定义fs.writeFileSync()函数。尝试使用非同步writeFile,如下所示:

var fs = require("fs");
var json2xls = require('json2xls');
var json = {
    foo: 'bar',
    qux: 'moo',
    poo: 123,
    stux: new Date()
}

var xls = json2xls(json);

console.log(fs);

// THIS WORKED FOR ME
//fs.writeFileSync('data.xlsx', xls, 'binary');

// TRY THIS , MAYBE YOU HAVE AN OLD VERSION OF NODE THAT DOES NOT HAVE fs.writeFileSync
fs.writeFile('data2.xlsx', xls, function (err) {
  if (err) throw err;
  console.log('saved file');
});