在网站上显示大型 Excel 文件中的数据的最佳方式

Posted

技术标签:

【中文标题】在网站上显示大型 Excel 文件中的数据的最佳方式【英文标题】:Best way to present data from a big excel file on a website 【发布时间】:2015-02-10 17:31:38 【问题描述】:

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

我是否应该在服务器上运行 matlab 或 java 脚本,然后制作一个以某种方式连接到服务器的 javascript?我该怎么做?

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

我是网络开发的初学者,所以我真的不知道从哪里开始......

【问题讨论】:

嗯,最简单的方法是导出为 CSV 并从中工作。 @Shahar 然后制作一个可以读取它的javascript? 用户应该用它做什么?刚读完?导入他们的 Excel 并使用它? 【参考方案1】:

当我不得不分析我给出的成绩时,我碰巧做了这样的事情。我所做的是将 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

然后就很简单了。使用。假设我在导出的 CSV 中放入了 textarea,例如:

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

【讨论】:

split(",") 解析 CSV 不是最好的主意,如果该字段中有文字逗号,您的解析器将会搞砸。您可能希望找到为您使用的语言编写的 CSV 解析器。谷歌搜索“js csv parser”会返回很多示例。 @Wiscocrew 当然他能找到更好的东西,虽然我不认为 Excel 会在 CSV 中输出文字逗号。 这看起来像是我需要的东西。谢谢你。那么拥有一台 javascript 调用 java/matlab 脚本的服务器是不是有点矫枉过正? @lijas 差不多,是的。这样就可以了。 @Shahar,如果您的 Excel 文件中的单元格中有逗号怎么办? “姓,名”之类的。我并不是说这在所有情况下都是绝对必要的,只是一个好主意。

以上是关于在网站上显示大型 Excel 文件中的数据的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

从网站抓取数据的3种最佳方法

在 Excel 中筛选大型列表的最佳方法是啥?

替换大型数据集中数据格式的最佳方法是啥?

带宏的excel无法在sharepoint上显示吗

管理数据库的最佳方式 (ACCESS)

R读取excel文件的最佳方式