我有一个需要上传文件的网络应用程序(ASP.Net)
我一直在寻找一个框架来从客户端的excel中提取数据,并将内容(JSON,CSV)格式提交到服务器端以减少流量。我在javascript中查看了ActiveXObject,但它只适用于Internet Explorer。我可以选择使用silverlight或actionscript来进行解析。
问题:
银光真的死了吗?从长远来看,我不能使用它吗?
这可以使用动作脚本吗?
是否有任何javascript框架可以进行这种解析?
提前致谢
答案 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>