如何使用node.js生成excel文件?

时间:2017-11-17 11:04:23

标签: node.js excel

您好我是从阵列生成excel文件,但我没有获得成功。我正在使用node.js,我使用npm包生成excel文件,但我没有在excel文件中获取任何数据。 excel是生成但不在我的文件中获取任何类型的数据。所以任何人都知道我的错误在哪里,请让我知道如何解决它。

这是我的数组和查询=>

            var XLSX = require('xlsx');
                   var Array = [];
                    Array.push({
                        username: 'Carakc',
                        fullName: 'Crack',
                        followingCount: 2655,
                        followerCount: 466,
                        biography: 'I am new man'                                                      
                    },
                  {
                      username: 'mahi',
                      fullName: 'Fit',
                      followingCount: 3011,
                      followerCount: 385,
                      biography: 'hello everyone!'                          
                  })

app.get(prefix + '/GetFollowersInExcel', function (req, res, next) {                                                                       
                    var ws = XLSX.utils.json_to_sheet(Array);
                    var wb = XLSX.utils.book_new();
                    XLSX.utils.book_append_sheet(wb, ws, "Followres");
                    var wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
                    res.end(wbout, 'binary');
                }
            });
        }
    });
})

这是我的服务代码=>

GetFollowersInExcel: function (InstaId) {            
        return $http({
            method: "GET",
            url: ONURL + "GetFollowersInExcel",
            responseType: "arraybuffer",
            headers: {
                'Content-type': 'application/json',
                'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
            }                
        }).then(function (data, status, xhr) {
            debugger;
            if (data.data.byteLength > 0) {
                var file = new Blob([data.data], { type: 'application/binary' });
                var fileURL = URL.createObjectURL(file);
                $('#getexcel').show();
                var link = document.createElement('a');
                link.href = fileURL;
                link.download = "myfile.xlsx";
                link.click();
                URL.revokeObjectURL(file);
            }
        }, function (error) {
            return error;
        })
    },

使用此wave我在excel中得到这样的数据=>

enter image description here

我想在excel file =>

中使用此数据

enter image description here

1 个答案:

答案 0 :(得分:0)

我已经尝试了您的第一个代码,但我没有发现任何错误,因此生成的xlsx非常完美。

Peheraps我发现了问题:在app.get回调之外声明了var数组...你确定XLSX.utils.json_to_sheet可以正确地访问你的var数组吗?它在同一范围内?或者它被宣布在某个地方无法进入?

尝试在回调中声明它,并且可能一切都会正常工作,如果是这种情况,你可以使用类或方法从外部检索var(""取决于你的代码)

P.S。更改var的名称,不是覆盖Array对象的好习惯;)