2015-02-10 61 views
-1

我有一个很棒的excel文件,我想在我的网站上显示数据。我制作了一个matlab和一个Java程序(脚本),可以从excel文件中提取我想要的信息。我如何获得数据到网站?从网站上的大型Excel文件中提供数据的最佳方式

我应该在服务器上运行matlab或java脚本,然后创建一个以某种方式连接到服务器的JavaScript?我将如何做到这一点?

或者应该做一个javascript,直接读取excel文件?

我在Web开发初学者,所以我真的不知道从哪里开始...

+0

呃,最简单的就是导出为CSV格式,并从中导出。 – Shahar 2015-02-10 17:36:38

+0

@Shahar然后制作一个JavaScript来读取它? – lijas 2015-02-10 17:48:58

+0

用户应该怎么做?只读过它?导入他们的Excel并使用它? – jHilscher 2015-02-10 17:57:14

回答

0

我碰巧做这样的事情,而我不得不分析我给的分数。我所做的是将Excel工作表导出为CSV格式,然后将其放到一个网站中,我使用JavaScript将其转换为JSON。这是我用来执行转换的功能:

function csvJSON(csv){ 
    var lines=csv.split("\n"); 

    var result = []; 

    var headers=lines[0].split(","); 

    for(var i=1;i<lines.length;i++){ 

     var obj = {}; 
     var currentline=lines[i].split(","); 

     for(var j=0;j<headers.length;j++){ 
      obj[headers[j]] = currentline[j]; 
     } 
     result.push(obj); 
    } 

    //return result; //JavaScript object 
    return JSON.stringify(result); //JSON 
} 

然后它很简单。使用。比方说,我把一个textarea导出CSV,例如:

Name,Grade1,Grade2 
Bobby,87,12 
Rakesh,9,3 
//... 

然后我打电话csvJSON()这个数据得到:

[{"Name":"Bobby","Grade1":87,"Grade2":12},{"Name":"Rakesh","Grade1":9,"Grade2":3},/*...*/] 

这是特别好用。例如:

var csv = ""; // get it from somewhere 
var json = JSON.parse(csvJSON(csv)); 
for (int i = 0; i < json.length; i++) 
{ 
    var obj = json[i]; 
    var name = obj.Name, Grade1 = obj.Grade1, Grade2 = obj.Grade2; 
    //Do something 
} 
+1

用split(“,”)解析CSV并不是最好的想法,如果字段中有文字逗号,解析器将会混乱。您可能希望找到为您正在使用的语言编写的CSV解析器。谷歌搜索“js csv解析器”返回了很多例子。 – 2015-02-10 18:00:32

+0

@Wiscocrew确定他能找到更好的东西,但我不认为Excel会在CSV中输出文字逗号。 – Shahar 2015-02-10 18:01:59

+0

这看起来像我需要的东西。谢谢。所以有一个服务器的JavaScript调用一个Java/matlab脚本是矫枉过正? – lijas 2015-02-10 18:09:56

相关问题