在AngularJS中导出CSV, Excel, PDF格式的数据
Export data in CSV, Excel, PDF format in AngularJS
我想在我的应用程序中添加CSV, Excel, PDF格式的导出表数据功能。
我正在使用angularjs 1.2.16构建应用。
导出Excel数据
我用过
<script src="https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>
使用以下代码将表导出为XLS格式:
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自由办公室工作良好(文件显示损坏的数据)。
谁能告诉我如何在angularjs中导出CSV,Excel和PDF格式的表数据?
你可以使用Alasql JavaScript library with XLSX.js从AngularJS导出数据为XLS, XLSX, CSV和TAB格式。
在代码中包含两个库:
- alasql.min.js
- xlsx.core.min.js
导出数据为Excel格式,在控制器代码中创建一个函数:
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中创建一个按钮(或任何其他链接):
<div ng-controller="myCtrl">
<button ng-click="exportData()">Export</button>
</div>
在jsFiddle中试试这个例子。
使用CSV()函数将数据保存为CSV格式:
alasql("SELECT * INTO CSV('mydata.csv', {headers:true}) FROM ?",[$scope.mydata]);
或者使用TXT()、CSV()、TAB()、XLS()、XLSX()函数获取合适的文件格式
如果你对CSV文件很满意,那么ngCsv模块就是最佳选择。不需要从DOM中加载元素,而是直接导出数组。下面是ngCsv的运行示例:
html: <h2>Export {{sample}}</h2>
<div>
<button type="button" ng-csv="getArray" filename="test.csv">Export</button>
</div>
和js:
angular.module('csv', ['ngCsv']);
function Main($scope) {
$scope.sample = "Sample";
$scope.getArray = [{a: 1, b:2}, {a:3, b:4}];
}
保存;要更改注册的文件扩展名,例如:"f:'folder'report.html"目录?
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8" });
saveAs(blob, "report.xls");
我研究了几种方法,得出以下结论:类型安全(DefinitelyTyped):
exportAsExcel(tableId: string, fileName: string, linkElement: any) {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>',
base64 = function (s) {
return window.btoa(decodeURI(encodeURIComponent(s)));
},
format = function (s, c) {
return s.replace(/{('w+)}/g, function (m, p) {
return c[p];
});
};
// get the table data
var table = document.getElementById(tableId);
var ctx = {
worksheet: fileName,
table: table.innerHTML
};
// if browser is IE then save the file as blob, tested on IE10 and IE11
var browser = window.navigator.appVersion;
if ((browser.indexOf('Trident') !== -1 && browser.indexOf('rv:11') !== -1) ||
(browser.indexOf('MSIE 10') !== -1)) {
var builder = new MSBlobBuilder();
builder.append(uri + format(template, ctx));
var blob = builder.getBlob('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
window.navigator.msSaveBlob(blob, fileName + '.xlsx');
} else {
var element = document.getElementById(linkElement);
var a = document.createElement('a');
a.href = uri + base64(format(template, ctx));
a.target = '_blank';
a.setAttribute('download', fileName + '.xlsx');
document.body.appendChild(a);
a.click();
}
toastr.success("Awesome!", "We've created an Excel report for you and you should get it as a download in your browser.");
}
感谢那些为我们的文章做出贡献的人。
我们可以将数据从表导出为各种格式,包括Json, Xml, Pdf .....
你可以找到详细的解释http://www.prathapkudupublog.com/2015/10/angular-export-to-table.html注意:此实现无法在IE
中运行。你需要什么?AngularjsJquery.js下面引用的文件tableExport.js、JqueryBase64.js html2canvas.js、base64.js Jspdf.js, sprintf.js
<script type="text/javascript">
var myAppModule = angular.module('myApp', []);
myAppModule.controller('myCtrl', function ($scope) {
$scope.exportData = function () {
$('#customers').tableExport({ type: 'json', escape: 'false' });
};
$scope.items = [
{
"FirstName": "Prathap",
"LastName": "Kudupu",
"Address": "Near Anjana Beach"
},
{
"FirstName": "Deepak",
"LastName": "Dsouza",
"Address": "Near Nariman Point"
}
];
});
- CSV、PDF、Excel文件在dataTables的导出扩展中作为blob下载
- 如何使用chart.js导出Excel和PDF格式的图表
- 上传Excel xls,解析到Json,编辑Json输出pdf或Excel xls Nodejs Multer Angu
- 如何在网络浏览器中显示MS-Excel和PDF文档
- 剑道UI网格导出Excel和pdf导出,未创建文件
- JQuery 数据表延迟加载导出数据到 pdf、excel 等,不显示所有记录
- 任何人都可以帮助我下载Excel和PDF中的Jquery数据表数据
- Excel、CSV、PDF和Copy在数据表工具中不起作用
- 如何通过jQuery/JavaScript将html表格导出到html页面中的excel或pdf
- C#/Javascript数据表导出为Excel和PDF
- 在JavaScript中是否可以将字节数组/流转换为Word,Excel, PDF等文件?
- 完整日历到Excel和.pdf
- 使用JavaScript将Excel转换为PDF
- 当点击angularjs中的链接时,如何打开word/Excel/PDF文件
- 如何将html数据转换为excel或PDF并附加下载
- 在AngularJS中导出CSV, Excel, PDF格式的数据
- 表头不显示在导出的PDF/EXCEL,如果我在数据表中使用列搜索选项
- 数据表工具副本,pdf.csv,excel导出不起作用.只有打印在工作
- 生成文件大小有限的EXCEL、PDF、CSV报告
- 在Javascript或Jquery中导出html表格和格式化的CSS到Excel或PDF文件