【问题标题】:Export AngularJS table to .CSV directing to about:blank page?将 AngularJS 表导出到 .CSV 并指向 about:blank 页面?
【发布时间】:2018-09-12 01:52:06
【问题描述】:

我目前有一个 Javascript 函数,它可以通过 div ID 将我的 AngularJS 表 JSON 数据导出到 .csv 文件,如下所示:

$scope.exportToExcel = function (tableId) { // ex: '#my-table'
    var exportHref = Excel.tableToExcel(tableId, 'WireWorkbenchDataExport');
    $timeout(function () { location.href = exportHref; }, 100); // trigger download
}

我是这么称呼的

<button style="float: right;" class="btn btn-link" ng-click="exportToExcel('#codeProjectsTable')" filename="test.csv">
     <span class="glyphicon glyphicon-share"></span>
      Export table
</button>

这适用于大约 400 条或更少记录的数据集(每条记录 20 列),但我正在尝试导出近 1,000 条记录以进行进一步报告,而我只是被定向到 about:blank 页。

我怀疑是不是

  1. 无法导出这么大的文件
  2. 由于请求过长而超时

提前致谢。

【问题讨论】:

    标签: javascript mysql angularjs node.js excel


    【解决方案1】:

    我使用以下逻辑导出

                var fileName = 'users_export_' + moment().format('YYYY-MM-DD') + '.csv';
                var url = URL.createObjectURL(new Blob([response.data]));
                var a = document.createElement('a');
                a.href = url;
                a.download = fileName;
                a.target = '_blank';
                a.click();
    

    它适用于大型文件/数据

    【讨论】:

    • 你的response.data 怎么样了? JSON 格式?
    • 不,它不是 json 格式。在像表格这样的普通文本中
    • 谢谢。你能告诉我你是如何返回你的响应对象的吗?我尝试了 JSON,它抓取了 DOM 源,所以有很多不需要的数据。我也按表 ID 尝试过,它是未定义的。
    猜你喜欢
    • 2015-06-10
    • 1970-01-01
    • 2020-09-05
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多