私は Angular JS アプリに取り組んでいますが、Angular JS を使用してデータを Xls にエクスポートしなければならない状況に陥っています。インターネットでエクスポート機能や Angular JS のライブラリを検索して、それを実行できるか、少なくともエクスポート方法のアイデアを得ることができました。ここで示すコードや作業はありません。
オブジェクトの配列であるデータがあり、それをテーブル内の UI で反復しています。バックエンドは node.js で、フロントエンドは Angular js です。
私の問題は、サーバーからデータを取得して UI で使用している場合、同じデータを Angular JS を使用して Xls にエクスポートするにはどうすればよいかということです。バックエンドで再度呼び出してデータを抽出し、エクスポートしたくありません。
既存のテーブルでは、ユーザーはチェックボックス (任意の行数またはすべての行) を選択してデータを Xls に抽出できます。
node.js では、Excel という名前のノード モジュールを使用しました。これは nodemodules サイトで入手できます。
私のデータは次のようになります:
"data": [
{
"Name": "ANC101",
"Date": "10/02/2014",
"Terms": ["samsung", "nokia": "apple"]
},{
"Name": "ABC102",
"Date": "10/02/2014",
"Terms": ["motrolla", "nokia": "iPhone"]
}
]
angularjs または任意の angularjs ライブラリを使用したソリューションが必要です。
ベストアンサー1
これを安価に行う方法は、Angularを使用して生成し<table>
、ファイルセーバー.jsユーザーがダウンロードできるように、テーブルを .xls ファイルとして出力します。Excel では、HTML テーブルをスプレッドシートとして開くことができます。
<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>
エクスポート呼び出し:
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
});
saveAs(blob, "Report.xls");
};
デモ:http://jsfiddle.net/TheSharpieOne/XNVj3/1/
チェックボックス機能と質問のデータを含むデモを更新しました。デモ:http://jsfiddle.net/TheSharpieOne/XNVj3/3/