从客户端Web应用程序中提取excel内容

时间:2015-03-16 05:10:34

标签: javascript excel actionscript-3 c#-4.0 silverlight-4.0

我有一个需要上传文件的网络应用程序(ASP.Net)

我一直在寻找一个框架来从客户端的excel中提取数据,并将内容(JSON,CSV)格式提交到服务器端以减少流量。我在javascript中查看了ActiveXObject,但它只适用于Internet Explorer。我可以选择使用silverlight或actionscript来进行解析。

问题:

  

银光真的死了吗?从长远来看,我不能使用它吗?

     

这可以使用动作脚本吗?

     

是否有任何javascript框架可以进行这种解析?

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用JS-XLSX JavaScript library来解析客户端上的文件,然后将已解析的电子表格的内容发送到服务器。

例如,您可以创建一个按钮(请参阅下面的HTML代码),然后在更改事件上调用loadBinaryFile(),使用JS-XLSX库解析它并使用$ .post()或其他类似函数将其发送到服务器。

工作簿的结构是一个JSON对象,它在JS-XLSX站点的文档中有详细描述。

<script src="http://alasql.org/console/xlsx.core.min.js"></script>    

<input type="file" onchange="parseAndSend(event)" value="Parse and send XSLS file">
  
<script>
    function parseAndSend (event) {
        // Load binary file from desktop
        loadBinaryFile(event,function(data){
            // Parse it to JSON
	    	var workbook = XLSX.read(data,{type:'binary'});
            // Send to server data from workbook here
            // $.post({url:'http://mypostaddress',data:workbook});
            alert(workbook.SheetNames);
        });
    }

    function loadBinaryFile(path, success) {
            var files = path.target.files;
            var reader = new FileReader();
            var name = files[0].name;
            reader.onload = function(e) {
                var data = e.target.result;
                success(data);
            };
            reader.readAsBinaryString(files[0]);
    }
</script>