2016-03-08 19 views
1

我是AngularJS的新手。如何解析/讀取已存在於服務器上的AngularJS中的excel文件(.xls或.xlsx)?

我有一個excel文件,標題爲sample.xls已經存在於我的服務器上的某個文件夾中。這個excel文件包含四張表格。我想解析整個文件(即所有表格中的數據)。

AngularJS應該怎麼做?

我不希望代碼上傳Excel文件到服務器在AngularJS。我想要一種方法來解析已經存在於使用AngularJS的服務器上的excel文件。

請有人幫我在這方面。

如果您可以將一些包含多張工作表的excel文件與一些工作示例一起展示您的代碼,那將會更好。

謝謝。

+0

參考此鏈接http://stackoverflow.com/questions/29465930/read-local-xls-xlsx-file-in-javascript –

+0

@Riazaskather :我檢查了這一點。我只想用AngularJS來完成這個任務。 – user2839497

+0

你能指定你的目標是什麼嗎?除非有特殊情況,否則沒有理由不解析服務器端的Excel文件並將相關數據連接到客戶端。 – Alexei

回答

0

您可以從服務器請求excel文件,然後使用https://github.com/SheetJS/js-xlsx來處理Javascript/Typescript中的結果。

雖然個人而言,我會選擇在選擇的語言做閱讀服務器端,然後返回包含的數據作爲Json對象。

+0

我只想使用AngularJS來實現這一點。 – user2839497

+2

Angular是一個使用Javascript的框架。無論你做什麼都會用Javascript編寫。 –

1

使用此代碼從Excel中讀取數據文件

<script> 
/* set up XMLHttpRequest */ 
var url = "test.xlsx"; 
var oReq = new XMLHttpRequest(); 
oReq.open("GET", url, true); 
oReq.responseType = "arraybuffer"; 

oReq.onload = function(e) { 
    var arraybuffer = oReq.response; 

    /* convert data to binary string */ 
    var data = new Uint8Array(arraybuffer); 
    var arr = new Array(); 
    for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]); 
    var bstr = arr.join(""); 

    /* Call XLSX */ 
    var workbook = XLSX.read(bstr, {type:"binary"}); 

    /* DO SOMETHING WITH workbook HERE */ 
    var first_sheet_name = workbook.SheetNames[0]; 
    /* Get worksheet */ 
    var worksheet = workbook.Sheets[first_sheet_name]; 
    console.log(XLSX.utils.sheet_to_json(worksheet,{raw:true})); 
} 

oReq.send(); 
    </script> 
相關問題