我需要使用AngularJS将数据导出到Excel工作表(使用1.5.x版) 我尝试使用下面链接中给出的解决方案中的FileSaver.js和Alasql
我有两个问题。
我可以使用FileSaver在表格顶部创建所需的粗体标题和单独的行,但它会导致第二点。
Javascript & HTML Code -
$scope.getFile = function () {
var blob = new Blob([document.getElementById('exportable').innerHTML], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"});
saveAs(blob, "ProgramsInfo.xls");
}
<a ng-click="getFile()" file-download="myBlobObject">Download Report</a><a>Share</a>
<div id="exportable" style="display:none;">
<table width="100%" border="1">
<thead>
<tr><td>Client : {{client}}</td></tr>
<tr><td>Program : {{programName}}</td></tr>
<tr><td>Date Range : {{dateRange}}</td></tr>
<tr>
<th>Name</th>
<th>E-mail</th>
<th>DoB</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="program in programs">
<td>{{program.account_name}}</td>
<td>{{program.e_mail ? 'Y':'N'}}</td>
<td>{{program.dob | date:'MM/dd/yy'}}</td>
</tr>
</tbody>
</table>
</div>
The file you are trying to open is in a different format than specified by the file extension...
![] [Firefox错误消息] 2
任何人都可以帮我吗?
答案 0 :(得分:0)
如果你正在使用alasql
,那么这样的话就可以了。
$scope.getFile = function () {
alasql('SELECT * INTO XLSX("ProgramsInfo.xlsx",{headers:true}) FROM ?',[$scope.program]);
};
另外,您可以在这里试试http://jsfiddle.net/agershun/00nfeq12/并查看Export Html table to Excel。
对于您获得的错误The file you are trying to open is in a different format than specified by the file extension...
,它实际上是Excel中引入的安全功能,与Office 2007一起引入,与文件内容和文件扩展名相匹配。
启用安全功能时会显示该警告,并且它会检测文件的实际内容与文件扩展名之间可能存在的不兼容性,这可能会导致意外问题。
可以编辑注册表项以阻止消息显示。
在HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security
下添加名为DWORD Value
的新ExtensionHardening
并将其值设置为 0