⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 excelpage.aspx

📁 本程序使用C#开发
💻 ASPX
📖 第 1 页 / 共 3 页
字号:
        
	function getscol()
	{
		return scol;
	}
	function getecol()
	{
		return ecol;
	}
	function getsrow()
	{
		return srow;
	}
	function geterow()
	{
		return erow;
	}
	function readfile()
	{
		scol = this.xscol;
		//alert(scol);
		srow = this.xsrow;
		//alert(srow);
		ecol = this.xecol;
		//alert(ecol);
		erow = this.xerow;
		//alert(erow);
	}
	
	//合并单元格
	function unitTD()
	{
		var delobjs = new Array();//存放需要删除的对象
		var n=0;//记录删除的格数

		var myobj = tbs.get(srow+'-'+scol);//得到选择的起始行和起始列的值,作为其他选种格子的值
		var currow = myobj.row;
		var curcol = myobj.col;

		var unitvalue = srow+'.'+scol+'.'+erow+'.'+ecol;//当前合并的起始行和起始列
		for(var i = srow; i<=erow; i++)
			for(var j = scol; j<=ecol; j++)
			{
				var key = i + '-' + j;
				var changeobj = tbs.get(key);
				if(unitcells.containsKey(key))
				{
					//说明曾经删除过
					unitcells.remove(key);
				}
				if(!changeobj.merge)
				{
					delobjs[n++] = tbobj.rows[changeobj.row].cells[changeobj.col];
				}
				//第一个不放入进去,同时第一个的merge属性为false
				unitcells.put(i+'-'+j , unitvalue);
				if(i!=srow||j!=scol)
				{					
					changeobj.merge = true;
				}
				changeobj.row = currow;
				changeobj.col = curcol;				
			}
		//修改后面的列值
		changehashcolvalue();

		for(var i=1; i<delobjs.length; i++)
		{ 
			delobjs[i].childNodes[0].removeNode();
			delobjs[i].removeNode();
		}
		delobjs[0].colSpan = ecol-scol + 1;
		delobjs[0].rowSpan = erow-srow + 1;
		//隐藏右键菜单
		oPopup.hide();
		GetMaxColRow(erow,ecol);
	}

	//修改哈稀表中的col的值
	function changehashcolvalue()
	{		
		for(var i = srow; i<=erow; i++)
		{
			var flag = true;
			var mercolnum = 0;//第一行合并了多少列
			var procolnum = 0;//当前行从当前列算起的前一个有列号的列序号

			//倒数过去,当前行第一个有列号的cell对象
			for(var j = scol-1; j>0; j--)
			{
				var key = i+'-'+j
				var objpro = tbs.get(key);
				if(objpro.merge)
				{
					//说明此行此列在现实表中不存在
					continue;
				}
				else
				{
					procolnum  = tbobj.rows[objpro.row].cells[objpro.col].cellIndex;
					break;
				}
			}
			//修改列值?
			for(var j = ecol+1; j<= tablecol; j++)
			{
				var key = i + '-' + j;
				var changeobj = tbs.get(key);//当前行中,选中对象的一个格子
				if(changeobj.merge)
				{
					//说明此行此列在现实表中不存在
					continue;
				}
				else
				{
					if(flag)
					{
						//找第一个
						var nextcolnum  = tbobj.rows[changeobj.row].cells[changeobj.col].cellIndex;
						if(i == srow)
						{
							mercolnum = nextcolnum - procolnum - 2;
						}
						else
						{
							mercolnum = nextcolnum - procolnum - 1;
						}
						flag = false;
					}
					var col = changeobj.col - mercolnum;
					//判断是否要更新块
					if(unitcells.containsKey(key))
					{
						mendblockvalue(key,col);
					}
					changeobj.col = col;
				}				
			 }
		 }
	}
	//修改合并块的列值
	function mendblockvalue(key,col)
	{
		var rowcells = unitcells.get(key);
		var values = rowcells.split('.');
		var sr = values[0];
		var sc = values[1];
		var er = values[2];
		var ec = values[3];
		for(i = sr ;i<=er;i++)
			for(j=sc;j<=ec;j++)
			{
				var changeobj = tbs.get(key);
				changeobj.col = col;
			}
	}
	function show()
	{		
		//首先进行鼠标移动的方向判断,并获得起始状态的srowv,scol和erow,ecol
		if(this.sy>=this.ey)
		{
			//向上
			getrowcol(true,this.eobj)
			//ohoh.innerText = 'srow=' + srow + ',scol=' + scol;
			getrowcol(false,this.sobj)
			//ohoh1.innerText = 'erow=' + erow + ',ecol=' + ecol;
		}
		else
		{
			//向下
			getrowcol(true,this.sobj)
			//ohoh.innerText = 'srow=' + srow + ',scol=' + scol;
			getrowcol(false,this.eobj)
			//ohoh1.innerText = 'erow=' + erow + ',ecol=' + ecol;
		}	

		//循环找出要覆盖的区域
		var searchflag = true;
		while(searchflag)
		{
			searchflag = getcellobj();
		}
		var scellobj = tbs.get(srow+'-'+scol);
		var ecellobj = tbs.get(erow+'-'+ecol);
		var left = fnGetPosition(tbobj.rows[scellobj.row].cells[scellobj.col],'Left');
		var top = fnGetPosition(tbobj.rows[scellobj.row].cells[scellobj.col],'Top');
		var right = fnGetPosition(tbobj.rows[ecellobj.row].cells[ecellobj.col],'Right');
		var bottom = fnGetPosition(tbobj.rows[ecellobj.row].cells[ecellobj.col],'Bottom');
		hehe.style.left = left;
		hehe.style.top = top;
		hehe.style.width = right - left;
		hehe.style.height = bottom - top;
		hehe.style.display = '';
	}
	function getrowcol(kind,cellobj)
	{	
		while(cellobj!=null)
		{
			if(cellobj.tagName == "TD")
			{				
				var parentobj = cellobj.parentElement;
				var colspan = getmergecolnum(parentobj.rowIndex,cellobj.cellIndex);
				if(kind)
				{
					//ohoh2.innerText ="row:"+cellobj.parentElement.rowIndex+",col:"+ cellobj.cellIndex+",colspan:"+colspan;
					srow = parentobj.rowIndex;
					scol = cellobj.cellIndex+colspan;
				}
				else
				{
					erow = parentobj.rowIndex+cellobj.rowSpan-1;
					ecol = Number(cellobj.cellIndex)+cellobj.colSpan-1+Number(colspan);//要加上自身的列数				
				}
				//if(erow == 31 || ecol == 11) safafd;
				return;
			}
			cellobj = cellobj.parentElement;
		}
	}
	//确定选择范围
	function getcellobj()
	{		
		if(scol>ecol){var temp=0; temp = scol; scol = ecol; ecol = temp; }
		for(var i = srow; i<=erow; i++)
		{			
			for(var j = scol; j<=ecol; j++)	
			{
				var checkobj = tbs.get(i + '-' + j); 				
				if(i==srow||i==erow)//说明检查的是第一行或者最后一行
				{
					if(geteffectrowcol(checkobj,i,j))
						return true;
				}
				else//检查中间的行
				{
					if(j==scol||j==ecol)
					{
						if(geteffectrowcol(checkobj,i,j))
							return true;
					}
					else
					{
						continue;
					}
				}
			}
		}
		return false;
	}
	//得到当前合并格子所影响的行和列
	function geteffectrowcol(checkobj,row,col)
	{
		var currow = checkobj.row;//当前实际操作的行
		var curcol = checkobj.col;//当前实际操作的列
		var reloadflag= false;

		//ohoh3.innerText = "aaaaa:"+currow+','+curcol;
		//tbobj.rows[currow].cells[curcol].colSpan==1胡耀2007-11-16号修改
		if(checkobj.merge == false&&tbobj.rows[currow].cells[curcol].colSpan==1)//说明没有合并
		{
			return reloadflag;
		}
		else
		{
			//+Number(tbobj.rows[currow].cells[curcol].colSpan)-1胡耀2007-11-16号修改
			var colnum = getmergecolnum(currow,curcol)+Number(tbobj.rows[currow].cells[curcol].colSpan)-1;
			if(currow>erow)
			{
				erow = currow;
				reloadflag = true;
			}
			if(currow<srow)
			{
				srow = currow;
				reloadflag = true;
			}
			if(Number(curcol)+colnum>ecol)
			{
				ecol = curcol+colnum;
				reloadflag = true;
			}
			if(Number(curcol)+colnum<scol)
			{
				scol = curcol+colnum;
				reloadflag = true;
			}
			return reloadflag;
		}
	}
	//获得某一行的某一列之前合并了多少列
	function getmergecolnum(row,col)
	{
		var n=col;
		for(;n<=tablecol;n++)
		{
			var obj = tbs.get(row+'-'+n);
			if(obj.row == row&&obj.col == col)
				break;
		}
		return n-col;
	}
	
	//*************************边框***************************
	function drawNet()//网
    {
        for(var i = srow; i<=erow; i++)
        for(var j = scol; j<=ecol; j++){
			var obj = tbs.get(i+'-'+j);
			//tbobj.rows[obj.row].cells[obj.col].className = "nettd";
			if(scol ==1)
				tbobj.rows[obj.row].cells[obj.col].style.borderColor = 'white ' + this.lineColor + ' ' + this.lineColor +  ' ' + this.lineColor;
			else
				tbobj.rows[obj.row].cells[obj.col].style.borderColor = 'white ' + this.lineColor + ' ' + this.lineColor + ' white';
        }        
        this.drawTopLine();
		this.drawLeftLine();
    }
    function drawNone()//无
    {
        for(var i = srow; i<=erow; i++)
        for(var j = scol; j<=ecol; j++){
			var obj = tbs.get(i+'-'+j);
			//tbobj.rows[obj.row].cells[obj.col].className = "";//??是否会用上面的
            tbobj.rows[obj.row].cells[obj.col].style.borderColor = 'white #ADD8E6 #ADD8E6 white';        
        }
        if( srow-1 > 0){var i=srow-1;		
            for(var j = scol; j<=ecol; j++) 
            {				
				var obj = tbs.get(i+'-'+j);
				//tbobj.rows[obj.row].cells[obj.col].className = "bottomtd";
				tbobj.rows[obj.row].cells[obj.col].style.borderBottomColor = '#ADD8E6';
            }
        }
        if( scol-1 > 0){var j=scol-1;
            for(var i = srow; i<=erow; i++)
            {
				var obj = tbs.get(i+'-'+j);
				//tbobj.rows[obj.row].cells[obj.col].className = "righttd";
				tbobj.rows[obj.row].cells[obj.col].style.borderRightColor = '#ADD8E6';
            }
        }

    }
    function drawRect() //框
    {
        this.drawTopLine();
        this.drawBottomLine();
        this.drawLeftLine();
        this.drawRightLine();
    }

    function drawTopLine() //上边
    {
        if( srow-1 >= 0){var i = srow-1;
            for(var j = scol; j<=ecol; j++)
            {
				var obj = tbs.get(i+'-'+j);
				//tbobj.rows[obj.row].cells[obj.col].className = "bottomtd";
				tbobj.rows[obj.row].cells[obj.col].style.borderBottomColor = this.lineColor;
				//tbobj.rows[obj.row].cells[obj.col].className = "notd";
            }
        }
    }
    function drawBottomLine() //下边
    {
        for(var j = scol; j<=ecol; j++){
			var obj = tbs.get(erow+'-'+j);
			//tbobj.rows[obj.row].cells[obj.col].className = "bottomtd";
			tbobj.rows[obj.row].cells[obj.col].style.borderBottomColor = this.lineColor;
        }
    }
    function drawLeftLine() //左边
    {
		var obj = null;
		if(scol ==1)
			tbobj.rows[srow].cells[1].style.borderColor = 'white ' + this.lineColor + ' ' + this.lineColor +  ' ' + this.lineColor;
        if( scol-1 > 0){
			var j=scol-1;
            for(var i = srow; i<=erow; i++)
            {
				obj = tbs.get(i+'-'+j);
				//tbobj.rows[obj.row].cells[obj.col].className = "righttd";
				tbobj.rows[obj.row].cells[obj.col].style.borderRightColor = this.lineColor;
            }
        }
    }
    function drawRightLine() //右边
    {
        for(var i = srow; i<=erow; i++){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -