使用正确格式的Angularjs将数据导出到xls

时间:2016-12-01 07:37:41

标签: angularjs firefox

我需要使用AngularJS将数据导出到Excel工作表(使用1.5.x版) 我尝试使用下面链接中给出的解决方案中的FileSaver.js和Alasql

Export to xls using angularjs

我有两个问题。

  1. 我需要自定义excel中的数据,如下面的屏幕截图所示:
  2. Format required

    我可以使用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>

    1. 使用Firefox时出现错误,指出The file you are trying to open is in a different format than specified by the file extension...
    2. ![] [Firefox错误消息] 2

      任何人都可以帮我吗?

1 个答案:

答案 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