2016-12-01 61 views
0

我需要使用AngularJS(使用1.5.x版)將數據導出到Excel工作表 我嘗試使用FileSaver.js和Alasql從下面給定鏈接的溶液導出數據到XLS在正確的格式使用Angularjs

Export to xls using angularjs

我有兩個問題。

  1. 我需要在Excel中的數據被定製爲在下面的截圖:

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>

  • 使用Firefox其中指出The file you are trying to open is in a different format than specified by the file extension...
  • ![] [火狐錯誤消息] 2時獲得的誤差

    任何人都可以幫助我?

    +1

    我建議你應該可以發佈您的努力Kritika一個更好的幫助升技。 –

    回答

    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...,它實際上是Office 2007中引入的Excel中的一項安全功能,它與文件內容和文件擴展名相匹配。

    當啓用安全功能並且它檢測到文件的實際內容和文件擴展名之間可能會導致意外問題的不兼容時,會顯示該警告。

    可以編輯註冊表項以停止顯示消息。

    HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security添加一個新的名爲DWORD ValueExtensionHardening設置它的值爲0

    +0

    我嘗試了上面的Alasql查詢(XLSX),它不會在打開excel文件時給出格式錯誤。但是,它沒有格式化標題內容的選項,以便按照我的要求進行粗體處理。我也嘗試過XLSXML查詢,它提供了格式化選項(標題顯示爲粗體),但也會在打開下載文件時出現格式錯誤。還嘗試了第二個鏈接提供的解決方案,得到相同的錯誤。 – Kritika

    +0

    嗯,比我建議你只使用'alasql'查詢。格式化東西,你可以用一些代碼來完成它。也請禁用MS安全選項,以便您不會得到錯誤。 –