一般都是你说的那种方法实现,没有见过直接在浏览器端处理的,估计要实现需要客户端安装Office吧,然后通过js调用Office的COM组件提取数据实现,我也没有做过,只是猜测,这种方式还不如直接上传到服务器作为临时文件好,而且需要浏览器端的环境(安装Office套件或注册相应的组件),所以推荐采用第一种方式!
这里有一个JS的简单参考:
var obj = document.all;
var oExcel; //定义Excel对象
var oWorkbook; //定义Excel工作薄
var strAllName; //定义导入的文件名称
var excelSheet; //定义Excel工作表
//建立Excel对象
oExcel = new ActiveXObject( "Excel.Application ");
//读取要导入Excel的文件名及路径
strAllName=obj.file.value;
//读取导入的Excel对象中的工作薄
oWorkbook = oExcel.Workbooks.Open(strAllName);
//读取Excel中的工作表
excelSheet = oWorkbook.ActiveSheet;
问题就是如何获得excelSheet这个工作表中有多少行数据!
我是做的while循环读的,人为在表最后一行加了个“结束”
var i = 1;
while(excelSheet.Cells(i,1)!= "结束 ")
{
tempValue = excelSheet.Cells(i,1);
i++;
}
下面链接更详细些:
Excel 2003之后的版本是一个标准的XML文件,可以直接从流中读取并进行分析,但是之前的版本是一个二进制文件,除非你非常了解其结构,不然分析这种文件是非常麻烦的