利用IE浏览器的ActiveX控件在前端读取Excel数据的js工具封装

本文介绍了如何在前端利用IE浏览器的ActiveX控件读取Excel数据,提供了一种封装好的js工具,支持读取多sheet、指定列和行的数据。只需设置输入文件ID或class,配置读取参数,调用readExcelData函数,即可获取到Excel数据数组。

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

 以下为实际开发过程中自行封装的方法,其中包括了读取多sheet,指定单列,指定多列,读取多行数据的适应方法。使用时引入js工具,对读取的行列参数进行配置,对应修改input[file]的ID或class,然后直接调用 readExcelData(type) 方法就可返回Excel的数据数组。type是为区分多种读取规则指定的参数。


/*
 * 封装前端读取Excel指定行列数据的函数
 * 
 * */
$(function(){
	//定义公用对象
	var zyType = $("#zyType").val();
	/**只读某列数据配置下列参数(当年台账数)**/
	thisSheets = [];
	thisRowIndex = [];
	thisColIndex = [];
	/**只读某列数据配置下列参数(上年台账数)**/
	oldThisSheets = [];
	oldThisRowIndex = [];
	oldThisColIndex = [];
	/**同时读行列数据的配置下列参数**/
	mySheets = [];
	myRowIndex = [];
	myColIndex = [];
	initReadPara(zyType);
});

//查看
function readExcelData(type){
	/**读取专业名称,限定只能导入包含专业名称的excel文件**/
	var zyName = $("#zyName").val();
	var fileAddress = $('#fileAddress').val();
	var ext = fileAddress.substr(fileAddress.lastIndexOf(".")).toLowerCase();
	var name = fileAddress.substr(fileAddress.lastIndexOf("\\")).toLowerCase();
	if(fileAddress == "") {
		layerAlert("提示","请选择excel文件!");
		return null;
	}else if(ext !=".xlsx" && ext !=".xls"){
		layerAlert("提示","只能导入xls、xlsx格式的文件!");
		return null;
	}else if(name == "" || name.indexOf(zyName) == -1){
		layerAlert("提示","只能导入各专业指定的台账模板文件!");
		return null;
	}else{
		return getvl(type) ;
	}
	
}

//获取文件本地物理路径并读取
function readExcel(filePath, type) {
	var html_code;
	//得到文件路径的值
	filePath = filePath ;
	oXL = new ActiveXObject("Excel.Application");
	oWB = oXL.Workbooks.open(filePath);
	var resultArry = new Array();
	/**判断是否需要读某一列的数据**/
	if(typeof(type) != "undefined" && type == "old") {
		if(oldThisSheets.length > 0) {
			//遍历需要读取的sheet表
			var index = 0;
			for(var i=0;i<oldThisSheets.length;i++){
				var s = oldT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值