【问题标题】:Convert JSON data into a downloadable Excel将 JSON 数据转换为可下载的 Excel
【发布时间】:2015-10-23 21:40:42
【问题描述】:

我正在尝试在我的 JavaScript 代码中将 JSON 数据转换为可下载的 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 文件的替代方法?

【问题讨论】:

  • 这是 node.js 还是浏览器? json2xsl 用于节点,filesaver.js 用于浏览器...

标签: javascript json excel filesaver.js


【解决方案1】:

试一下

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多