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

📄 readxml.js

📁 本程序使用C#开发
💻 JS
字号:
//加载路径为xmlFile的文件
function loadXMLFile(xmlFile)
{
    var xmlDoc;
    if(window.ActiveXObject)
    {
        xmlDoc    = new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async    = false;
        xmlDoc.load(xmlFile);
    }
    else if (document.implementation&&document.implementation.createDocument)
    {
        xmlDoc    = document.implementation.createDocument('', '', null);
        xmlDoc.load(xmlFile);
    }
    else
    {
        return null;
    }    
    return xmlDoc;
}
var xmlDoc = 0;
//判断是否加载正确
function checkXMLDocObj(xmlFile)
{
    xmlDoc  = loadXMLFile(xmlFile);
    if(xmlDoc==null)
    {
        alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
		return null;
    }
    GetXTableStyles('Workbook/Styles');//取得表格的样式
    GetXTableAttribute('Workbook/Worksheet');
}
//取得XML路径中的值
var xcelcount = 0 ;
var xrowcount = 0;
var xfullcol = 1;
var xfullrow = 1;
function GetXTableAttribute(xpath)
{
	var worksheetobj = xmlDoc.getElementsByTagName(xpath)[0];//table/WorksheetOptions
	if(worksheetobj == null){alert("文件打开错误!");return;}
	var objs = worksheetobj.childNodes;
    var table = objs[0];//
    xcelcount = table.getAttribute('ss:ExpandedColumnCount');
    xrowcount = table.getAttribute('ss:ExpandedRowCount');
    //xfullcol = table.getAttribute('x:FullColumns');
    //xfullrow = table.getAttribute('x:FullRows');
    //xdefaultw = table.getAttribute('ss:DefaultColumnWidth');
    //xdefauleh = table.getAttribute('ss:DefaultRowHeight');
    GetXTablechileNode(table);
}
var AutoFitWidth = 0;
var AutoFitHeight = 0;
var tophtml = "";
var righthtml = "";
var lefthtml = "";
function GetXTablechileNode(xtableobj)
{
	var xcols = xtableobj.getElementsByTagName("Column");
	var xrows = xtableobj.getElementsByTagName("Row");
	
	SetColWidth(xcols);
	
	SetRowHeight(xrows);

	//取得行和列的最大值
	var currow = 0;
	for(var i=0;i<xrows.length;i++)
	{
		var cells = xrows[i].getElementsByTagName("Cell");
			
		var cur = 1;
		
		var row = xrows[i].getAttribute("ss:Index");
		if(row != null&&row != "")
		{
			currow = row;
		}
		else
		{
			currow++;
		}
		
		for(var j = 0;j<cells.length;j++)
		{
			var cellsobj = cells[j];
			var cellindex = cellsobj.getAttribute("ss:Index");
			var styid = cellsobj.getAttribute("ss:StyleID");			
			
			if(cellindex != null&&cellindex != "")
			{
				cur = cellindex;
			}
			var mergecol = cellsobj.getAttribute("ss:MergeAcross");
			if(mergecol == null||mergecol == "")
			{
				mergecol = 0;
			}
			var mergerow = cellsobj.getAttribute("ss:MergeDown");
			if(mergerow == null||mergerow == "")
			{
				mergerow = 0;
			}
			var srow = Number(currow);
			var erow = Number(currow)+Number(mergerow);
			var scol = cur;
			var ecol = Number(cur) + Number(mergecol);
			selected_area.xsrow = srow;
			selected_area.xerow = erow;
			selected_area.xscol = scol;
			selected_area.xecol = ecol;		
			
			selected_area.readfile();
			if(srow != erow||scol != ecol)		
				selected_area.unitTD();
			var text = "";
			try
			{
				text = cellsobj.childNodes[0].text;
			}
			catch(e){}
			//2007-11-29号添加
			//if(i == 22)safdas;
			var myobj = tbs.get(srow+'-'+scol);
			
			if(scol == 1)
			{
				//说明是第二列
				tbobj.rows[myobj.row].cells[myobj.col].className = "mytd";
			}
			else
			{
				tbobj.rows[myobj.row].cells[myobj.col].className = "notd";
			}
			
			selected_area.sobj = tbobj.rows[myobj.row].cells[myobj.col];
			var index = styleindex(styid);
			if(index!=-1)
				setstyle(index);
			tbobj.rows[myobj.row].cells[myobj.col].children[0].innerText = text;
			
			//j = ecol;
			cur = ecol+1;
		}
	}	
}
function chr(charcode)
{   
  return(String.fromCharCode(charcode));   
}
function SetColWidth(xcols)
{
	//var H = document.getElementById("toptable");
	//var B = document.getElementById("tbobj");

	var curcolnum = 1;
	for(var n=0;n<xcols.length;n++)
	{
		var obj = xcols[n];
		if(obj == null)return;		
		var colobj = obj.getAttribute("ss:Index");
		if(colobj != null&&colobj != "")
		{
			curcolnum = colobj;
		}
		var width = xcols[n].getAttribute("ss:Width");
		if(width==null)continue;
		tbobj.rows(0).cells[curcolnum].style.width = width-1+'pt';
		toptable.rows(0).cells[curcolnum].style.width = width+'pt';
		//tbobj.rows(0).cells[curcolnum].style.width = parseFloat(width-1)*4/parseFloat(3);
		//toptable.rows(0).cells[curcolnum].style.width = parseFloat(width)*4/parseFloat(3);
		curcolnum++;
	}
}
function SetRowHeight(xrows)
{
	//var L = document.getElementById("lefttable");
	//var B = document.getElementById("tbobj");	
	var currownum = 1;
	for(var n=0;n<xrowcount;n++)
	{
		var obj = xrows[n];
		if(obj == null)return;
		
		var row = obj.getAttribute("ss:Index");
		if(row != null&&row != "")
		{
			currownum = row;
		}
		else
		{
			currownum = Number(n)+Number(1);
		}
		
		var rowobj = obj.getAttribute("ss:Height");
		if(rowobj==null)continue;
		lefttable.rows(currownum-1).cells[0].style.height = rowobj+'pt';
		tbobj.rows(currownum).cells[0].style.height = rowobj+'pt';
	}
}
//****************************读取样式************************************
var Stylesobj = null;//样式列表对象
var stylelen = 0;
function GetXTableStyles(xpath)
{
	Stylesobj = xmlDoc.getElementsByTagName(xpath)[0].childNodes;//得到Styles
	if(Stylesobj == null){alert("读取样式出错!");return;}
	stylelen = Stylesobj.length;
}
function styleindex(styid)
{
	for(var i=0;i<stylelen;i++)
	{
		if(styid == Stylesobj[i].getAttribute("ss:ID"))
			return i;
	}
	return -1;
}
function setstyle(index)
{
	var megobj = Stylesobj[index].childNodes;
	var attlen = megobj.length;//Style下面有多少个节点
	for(var i=0;i<attlen;i++)
	{
		if(megobj[i].tagName == "Alignment")
		{
			var text = megobj[i].getAttribute("ss:Horizontal");
			switch(text)
			{
				case "Center": mid();break;
				case "Left": left();break;
				case "Right": right();
			}
		}
		else if(megobj[i].tagName == 'Borders')
		{
			var borders = megobj[i].childNodes;
			var len = borders.length;
			if(len == 4) {selected_area.drawNet();continue;}
			for(var j=0;j<len;j++)
			{
				var position = borders[j].getAttribute("ss:Position");
				switch(position)
				{
					case "Bottom":selected_area.drawBottomLine();break;
					case "Top":selected_area.drawTopLine();break;
					case "Left":selected_area.drawLeftLine();break;
					case "Right":selected_area.drawRightLine();
				}
			}
		}
		else if(megobj[i].tagName == 'Font')
		{
			//字体
			var text = megobj[i].getAttribute("ss:FontName");
			if(text)
			{
				fontfamily2(text);
			}
			//字体
			text = megobj[i].getAttribute("ss:Size");
			if(text)
			{
				fontsize2(text);
			}
			//粗体
			text = megobj[i].getAttribute("ss:Bold");
			if(text)
			{
				cuti();
			}
		}
		else if(megobj[i].tagName == 'NumberFormat')
		{
		}
	}
}

⌨️ 快捷键说明

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