首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AngularJS中以CSV、Excel、PDF格式导出数据

问在AngularJS中以CSV、Excel、PDF格式导出数据
EN

Stack Overflow用户
提问于 2014-05-11 20:51:46
回答 5查看 55.9K关注 0票数 17

我想在我的应用程序中添加CSV,Excel,PDF格式的导出表数据功能。

我正在使用angularjs 1.2.16构建应用程序。

在Excel中导出数据

我用过

代码语言:javascript
复制
<script src="https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>

使用以下代码将表导出为XLS格式:

代码语言:javascript
复制
var blob = new Blob([document.getElementById('exportable').innerHTML], {
    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
});
saveAs(blob, "report.xls");

上面的代码运行良好。

以CSV、PDF格式导出数据

以同样的方式,我想以CSV和PDF格式导出数据。

我使用http://www.directiv.es/ng-csv在CSV中导出数据,但它在ubuntu libre office中不能正常工作(文件显示损坏的数据)。

谁能告诉我如何在angularjs中导出CSV、Excel和PDF格式的表格数据?

EN

回答 5

Stack Overflow用户

发布于 2014-12-16 16:50:56

可以使用带有XLSX.js的Alasql JavaScript库将数据从AngularJS输出为XLS、XLSX、CSV和tab格式。

在代码中包含两个库:

要将数据导出为Excel格式,请在控制器代码中创建一个函数:

代码语言:javascript
复制
function myCtrl($scope) {
    $scope.exportData = function () {
       alasql('SELECT * INTO XLSX("mydata.xlsx",{headers:true}) FROM ?',[$scope.items]);
    };
    $scope.items = [{a:1,b:10},{a:2,b:20},{a:3,b:30}];
};

然后在HTML中创建一个按钮(或任何其他链接):

代码语言:javascript
复制
<div ng-controller="myCtrl">
    <button ng-click="exportData()">Export</button>
</div>

在jsFiddle中尝试使用this example。

要将数据保存为CSV格式,请使用CSV()函数:

代码语言:javascript
复制
alasql("SELECT * INTO CSV('mydata.csv', {headers:true}) FROM ?",[$scope.mydata]);

或者使用TXT()、CSV()、TAB()、XLS()、XLSX()函数来获得正确的文件格式。

票数 14
EN

Stack Overflow用户

发布于 2014-11-26 20:47:04

如果您对CSV文件感到满意,那么ngCsv模块是不错的选择。您不是从DOM加载元素,而是直接导出一个数组。在这里,您可以看到一个实际运行的ngCsv示例。

html:

代码语言:javascript
复制
 <h2>Export {{sample}}</h2>
  <div>
      <button type="button" ng-csv="getArray" filename="test.csv">Export</button>
</div>

和js:

代码语言:javascript
复制
angular.module('csv', ['ngCsv']);

function Main($scope) {
    $scope.sample = "Sample";
    $scope.getArray = [{a: 1, b:2}, {a:3, b:4}];                            
}
票数 6
EN

Stack Overflow用户

发布于 2015-07-24 16:06:25

另存为;要更改注册的文件扩展名,例如:"f:\folder\report.html“目录?

代码语言:javascript
复制
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8" }); 
saveAs(blob, "report.xls");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23592849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档