【问题标题】:How to generate excel file using node.js?如何使用 node.js 生成 excel 文件?
【发布时间】:2018-05-01 03:28:22
【问题描述】:

您好,我想从数组中生成 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 中得到了这样的数据 =>

我想要excel文件中的这些数据=>

【问题讨论】:

  • 嗯...只是一个想法,我目前无法对其进行测试,但是您是否尝试将您的 var Array 重命名为其他名称?例如var blabla... 写这个:XLSX.utils.json_to_sheet(Array); 听起来好像您正在将 Array 对象转换为工作表
  • @RobertoBisello 你的意思是我需要更改数组变量的名称?但我也尝试过同样的问题
  • 这些标题似乎是您在数组上看到的默认属性(参见stackoverflow.com/questions/44833736/… 示例)。据我所知,这不是重复的,但该问题的答案可能会提供一些指导。
  • @AdrianWragg 你不知道这个问题,请帮我解决它
  • @Edit: 如果你已经尝试过了,我不知道,对不起,我会尽快尝试:)

标签: node.js excel


【解决方案1】:

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

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

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

附:更改 var 的名称,覆盖 Array 对象不是一个好习惯;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2017-10-15
    • 2015-07-09
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多