In realtà, ho un oggetto in mio controller, voglio solo esportare quell'oggetto come .xls o .csv file.i usato un sacco di approcci come questo:Angular JS - Come esportare l'oggetto Javascript nel file XLS?
HTML
<script src="https://rawgithub.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript" />
<div ng-controller="myCtrl">
<button ng-click="exportData()">Export</button>
<br />
<div id="exportable">
<table width="100%">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>DoB</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="item in items">
<td>{{item.name}}</td>
<td>{{item.email}}</td>
<td>{{item.dob | date:'MM/dd/yy'}}</td>
</tr>
</tbody>
</table>
</div>
</div>
Javascript
function myCtrl($scope) {
$scope.exportData = function() {
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
});
saveAs(blob, "Report.xls");
};
$scope.items = [{
name: "John Smith",
email: "[email protected]",
dob: "1985-10-10"
}, {
name: "Jane Smith",
email: "[email protected]",
dob: "1988-12-22"
}, {
name: "Jan Smith",
email: "[email protected]",
dob: "2010-01-02"
}, {
name: "Jake Smith",
email: "[email protected]",
dob: "2009-03-21"
}, {
name: "Josh Smith",
email: "[email protected]",
dob: "2011-12-12"
}, {
name: "Jessie Smith",
email: "[email protected]",
dob: "2004-10-12"
}]
}
ma questo non funziona con tables.is impaginati Esiste un modo per esportare direttamente gli oggetti (in questo esempio $ scope.item) su file (xls , CSV)?
Questa è un'ottima soluzione, apprezzo molto il contributo. Avete qualche soluzione semplice per analizzare anche oggetti interni e collezioni? –
Sì. Puoi provare l'operatore SEARCH, che è simile a SELECT ma attraversa l'oggetto JSON (vedi qui: https://github.com/agershun/alasql/wiki/Search) – agershun
il file plunkr xlsx ha un problema quando provi ad aprire esso. – crh225