js读取Excel的数据(仅IE有效)

本文介绍了一个使用JavaScript解析本地Excel文件的方法,并返回一个包含表格数据的二维数组。该方法支持指定工作表、起始行与列等参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js读取Excel,返回一个二维数组

/**
 *  desc:解析一个本地excel,返回一个二维数组
 *  param {}对象  属性 path,sheet,rowStart,rowEnd,colStart,colEnd,cols,  cols为数组如[1,3,5]表示135列
 *  param.path (Excel的路径) 必需  Excel的文件路径,为空返回空数组[]
 *  param.sheet (Excel的哪个sheet,正整数) 不传或传空为1 
 *  param.rowStart (从哪一行开始,正整数) 不传或传空为1 
 *  param.rowEnd (哪一行结束,正整数) 不传或传空为10000 
 *  param.colStart (哪一列开始,正整数) 不传或传空为1 
 *  param.colEnd (哪一列结束,正整数) 不传或传空为param.colStart
 *  param.cols (哪些列,正整数数组) 不传cols或空数组,按照colStart,colEnd来取列;否则按照cols数组来取值
 */
function parseExcel(param){
	var path=param.path;
	if((path===undefined)||(path=="")){
		return [];
	}
	var sheet=param.sheet;
	if((sheet===undefined)||(sheet=="")){
		sheet=1;
	}
	sheet=parseInt(sheet);
	var r1=param.rowStart;
	if((r1===undefined)||(r1=="")){
		r1=1;
	}
	r1=parseInt(r1);
	var r2=param.rowEnd;
	if((r2===undefined)||(r2=="")){
		r2=10000;
	}
	r2=parseInt(r2);
	var cols=param.cols;
	if((cols===undefined)||(cols.length==0)){   //没传cols或者为空时,根据colStart,colEnd来
		cols=[];
		var c1=param.colStart;
		if((c1===undefined)||(c1=="")){
			c1=1;
		}
		var c2=param.colEnd;
		if((c2===undefined)||(c2=="")){     //不传colEnd,只查colStart一列
			c2=1;
		}	
		//构造cols
		for(i=c1;i<=c2;i++){
			cols.push(i);
		} 
	}
	for(var i=0;i<cols.length;i++){
		cols[i]=parseInt(cols[i]);
	}

	var xlsExcel = new ActiveXObject("Excel.Application");
	try{
		var wb = xlsExcel.Workbooks;
		var xlsBook = wb.Open(path);
	}catch(e){
		wb = null;
		//xlsExcel.Quit();
		xlsExcel = null;
		//+e.message
		//alert("在电脑上未找到"+path);
		return [];
		
	}
	var xlsSheet = xlsBook.Worksheets(sheet);
	var hasValue = true;
	var rowind=r1;
	var cell="";
	var rows=[];
	while(hasValue && (rowind<=r2)){
		cell=xlsSheet.cells(rowind,cols[0]).value||"";
		if ((typeof cell==="undefined")||(cell=="")){
			hasValue=false;
		}else{
			var row=[cell];
			for(j=1;j<cols.length;j++){
				cell = xlsSheet.cells(rowind,cols[j]).value||"";
				row.push(cell);
			}
			rows.push(row);
		}
		rowind++;
	}
	xlsSheet = null;
	xlsBook.Close(savechanges=false);
	xlsBook = null;
	xlsExcel.Quit();
	xlsExcel = null;
	return rows;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值