CSV、Excelのエクスポートテーブルデータを追加したいPDFアプリのフォーマット機能。
Angularjs 1.2.16を使用してアプリを構築しています。
利用した
<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形式でデータをエクスポートします。
http://www.directiv.es/ng-csv を使用してCSVでデータをエクスポートしましたが、正常に動作していませんubuntu libre office(ファイルには破損したデータが表示されています)。
CSV、Excel、およびPDF形式)でテーブルデータをエクスポートする方法を教えてください。
Alasql JavaScriptライブラリ XLSX.js を使用して、AngularJSからXLS、XLSX、CSV、およびTAB形式にデータをエクスポートできます。
コードに2つのライブラリを含めます。
データを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}];
}
saveAs;登録済みのファイル拡張子を変更するには、たとえば: "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では実行されません
あなたは何が必要ですか? Angularjs Jquery.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"
}
];
});