| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193 | Namespace.register("U.Excel");U.Excel.TF = {    "ID": { "RW": [[]],        "TF": [[40, 20]],        "Cell": [[]],        "L": [[]],        "T": [[]]    }}; //数据库变量 原始变量U.Excel.SY = {    "UW": window,    "OL": true,    "userid": "",    "TF": [],    "BC": false,    "ID": "",    "CP": [],    "TD": false,    "SEO": false,    "C": [],    "CE": {        "RW": [],        "TF": [],        "Cell": [],        "L": [],        "T": []    },    Height: 25,    Width: 160};   //Excel使用变量//userid正在使用Excel的ID ID使用文件的ID CP复制区域的实体 TD是否允许拉选 SEO拉选的编辑框 C拉选实体 CE数据库存储变量US = parent.US;//右键变量U.Excel.SY["RM"] = {    "EO": [["U_E_OptionsImg", "插入", U.Excel.NewTZB],           ["U_E_OptionsImg", "删除", U.Excel.DelectSheet]],    "LO": [["U_E_OptionsImg", "在上面插入", U.M.apply(this, [[U.Excel.InsertRowsCols, ["T"]]])],           ["U_E_OptionsImg", "在下面插入", U.M.apply(this, [[U.Excel.InsertRowsCols, ["B"]]])],           ["U_E_OptionsImg", "删除行", U.M.apply(this, [[U.Excel.DeleteRowsCols, ['L']]])],           ["U_E_OptionsImg", "锁定行", ""]],    "TO": [["U_E_OptionsImg", "在左边插入", U.M.apply(this, [[U.Excel.InsertRowsCols, ["L"]]])],           ["U_E_OptionsImg", "在右边插入", U.M.apply(this, [[U.Excel.InsertRowsCols, ["R"]]])],           ["U_E_OptionsImg", "删除列", U.M.apply(this, [[U.Excel.DeleteRowsCols, ['T']]])], ["U_E_OptionsImg", "隐藏列", ""],           ["U_E_OptionsImg", "锁定列", ""],           ["U_E_OptionsImg", "排序", ""], ["U_E_OptionsImg", "筛选", ""],           ["U_E_OptionsImg", "列属性", ""]],    "SO": [["U_E_OptionsImg", "合并单元格", U.Excel.MergeCells],           ["U_E_OptionsImg", "拆分单元格", U.Excel.SplitCell]], "CO": [["U_E_OptionsImg", "批注", ""]],    "MO": [["U_E_ICO U_E_TUOJ", "剪切", U.Excel.Cut], ["U_E_ICO ico_07", "复制", U.Excel.CopyFunction],           ["U_E_ICO U_E_TUOZ", "粘贴", U.Excel.Paste],           ["U_E_OptionsImg", "清除内容", U.M.apply(this, [[U.Excel.EmptyContent, ['InnerHTML']]])]]};//-----------------------------------------------------------------------------------查看文件的Excel//#region Excel查看//连接查看Word资料window.onload = function () {    U.D.TopForm();    U.M.ShieldedRightAndSelect();    var _UDID = U.M.QueryString("ID");    if (_UDID) {        parent.U.A.Request(US.Auth, ["GetFileContent", _UDID], U.Excel.AsynGOF, [[$("body")[0], true], _UDID]);    };}//获取文件异步U.Excel.AsynGOF = function (r) {    var _UST, _UDID = r.context[1];    r = r.value;    U.Excel.SY["ID"] = _UDID;    r = U.Excel.CSOPBE(r, _UDID);    U.Excel.BLSC(_UDID, r);    parent.$("body").addAttrArray({ "innerHTML": U.Excel.CKLBCJ(), "style": { "position": "absolute", "overflow": "auto"} });}//创建查看列表的U.Excel.CKLBCJ = function (UWI) {    var _UH, _UW, _UDSD, _UDTD, _UDMD,    _UGE = U.Excel.SY["CE"]["TF"],    _UDPD = $$("div", { "style": { "cssText": "width:100%;height:100%;overflow:auto;"} });    _UDTD = $$("div", { "className": "U_E_CC U_E_CCO", "style": { "position": "static"} }, _UDPD);    _UDSD = $$("div", { "className": "U_E_CCL" }, _UDTD);    $$("div", { "className": "U_E_CCLT" }, _UDSD);    _UDSD = $$("div", { "className": "U_E_CCLC U_E_CCLCO", "style": { "height": "100%"} }, _UDSD);    _UDSD = $$("div", { "className": "U_E_LB", "id": "U_E_LB" }, _UDSD);    _UH = U.Excel.SPTP(_UGE[0], _UDSD, "L");    _UDSD = $$("div", { "className": "U_E_CCH" }, _UDTD);    _UDMD = $$("div", { "className": "U_E_CCB" }, _UDSD);    _UDMD = $$("div", { "className": "U_E_TB", "id": "U_E_TB" }, _UDMD);    _UW = U.Excel.SPTP(_UGE[1], _UDMD, "T");    _UDSD.style.width = _UW + "px"; _UDTD.style.width = _UW + 51 + "px"    _UDMD = $$("div", { "className": "U_E_CCC", "style": { "height": _UH + "px"} }, _UDSD);    _UDMD = $$("div", { "className": "U_E_CCCH U_E_CCCHO" }, _UDMD);    _UDMD = $$("div", { "className": "U_E_TableArea", "id": "U_E_TableArea" }, _UDMD);    U.Excel.CBG(_UGE, _UDMD);    _UDSD = $$("div", { "className": "U_E_CX" }, _UDPD);    _UDMD = $$("div", { "className": "UD_SYQEXR", "id": "UD_SYQEXR" }, _UDSD);    U.Excel.RWD(_UDMD, U.Excel.QHRWL);    return _UDPD.outerHTML;}//底部任务栏切换U.Excel.QHRWL = function (ITF, UW) {    UW = UW || window;    var _UW, _UH,    _UDOD = UW.$("#U_E_TB"),    _UDTD = UW.$("#U_E_TableArea"),    _UDSD = UW.$("#U_E_LB"),    _UKE = UD_SYQEXR,    _UDE = U.Excel.SwitchSheetTabs(ITF, true);    U.Excel.SY["UW"] = UW;    if (_UDE) {        document.body.scrollTop = 0;        _UH = U.Excel.SPTP(_UDE["TF"][0], _UDSD[0], "L");        _UW = U.Excel.SPTP(_UDE["TF"][1], _UDOD[0], "T");        _UDOD.Parent(2).style.width = _UW + "px";        _UDOD.Parent(3).style.width = _UW + 41 + "px";        U.Excel.CBG(_UDE["TF"], _UDTD[0]);        $(_UDTD).Parent(2).style.height = _UH + "px";        U.M.SCT(0, UW.$("body"));        U.MR.DHQH(this, "UD_SYQEXROO");    }}//#endregion//-------------------------------------------------------------------------------Excel初始化--------------------------------------------------------------------------//#region Excel 初始化//打开保存数据的ExcelU.Excel.OPBE = function (UDID, UDE, userid, UAE) {    var UDE, _UGE = U.Excel.SY,    _UOID = _UGE["ID"];    (UAE && UAE["UFN"]) && (U.Ut.AddObj(U.Excel, UAE["UFN"]), delete UAE["UFN"]);    U.Ut.AddObj(_UGE, { "BC": false, "UAE": UAE, "ID": UDID || "ID", "userid": userid, "ET": UDE });    if (UDID) {        UDE = UDE || (UDID ? _$(US.Disk.UserDisk[0]).Select({ "UserDirectoryID": UDID }, null, 1) : ""); //获取使用的Excel        if (UDE && UDE.UsOffice != null) { UDE.UsOffice = U.Excel.CSOPBE(UDE.UsOffice); U.Excel.BLSC(UDID, UDE.UsOffice); } //设置变量        else { parent.U.A.Request(US.Auth, ["GetFileContent", UDID], U.Excel.AsynOPBE, ["", UDID, UDE, userid, UAE]); return; }    }    else { UDE = U.Excel.TF["ID"]; U.Excel.BLSC("ID", UDE); } //生成空白的Excel    U.Excel.Onload(UDE); //设置初始化Excel}//Office异步U.Excel.AsynOPBE = function (r) {    var context = r.context,    _UDID = context[1],    _UDE = context[2],    _userid = context[3],    _UAE = context[4];    r = r.value;    r = U.Excel.CSOPBE(r, _UDE.UserDirectoryID);    _UDE.UsOffice = r;    U.Excel.OPBE(_UDID, _UDE, _userid, _UAE); //打印Excel}//office文件U.Excel.CSOPBE = function (UDE, UDID) {    if ((!UDE || !UDE["Cell"]) || U.Ut.isString(UDE)) {        try {            eval("0,r=" + UDE);        }        catch (e) {            parent.U.Alert("新初始化文件");            UDE = { "RW": [[]], "TF": [[40, 20]], "Cell": [[]], "L": [[]], "T": [[]] };            (UDID && parent.U.Adisk) && (parent.U.A.Request(US.Auth, ["SaveFileContent", UDID, U.MS.jsonToStr(UDE), ""]), U.M.apply(), [""]);        }    }    return UDE;}//生成全局变量U.Excel.BLSC = function (UDID, UDE) {    var i, j,    _UTE = U.Excel.TF,    _UGE = U.Excel.SY["CE"];    _UTE[UDID] = UDE;    for (j = 0; j < UDE["RW"].length; j++) {        if (UDE["RW"][j]) { break; }    } //查看的位置    for (i in UDE) {        if (UDE.hasOwnProperty(i)) {            _UGE[i] = (i == "RW" ? UDE[i] : UDE[i][j]);        }    } //生成查看变量    return _UGE;}//生成所有的Excel工具U.Excel.Onload = function () { }//#endregion//#region 页面生成//生成页面U.Excel.CNO = function () {    var _UGE = U.Excel.SY;    U.Excel.RWD(_UGE["UAE"]["XR"]);    U.Excel.RefreshTable(); //生成Excel表格    U.Excel.EditOnmousedown($("div", $("#U_E_TableArea")[0])[0], 0);    _UGE["TD"] = false; //编辑区域设置 //取消点击}//生成底部任务栏U.Excel.RWD = function (UDOD, UTF) {    var i,    _UGE = U.Excel.SY,    _UDE = _UGE["CE"]["RW"],    _UDFD = $$("frag");    UDOD = UDOD || _UGE["UAE"]["XR"];    (_UDE.length == 1) && (_UDE[0] = true);    UDOD.innerText = "";    for (i = 0; i < _UDE.length; i++) {        $$("div", { "innerHTML": "表格" + (i + 1), "className": "UD_SYQEXRO" + (_UDE[i] ? " UD_SYQEXROO" : ""), "onclick": [(UTF || U.Excel.SwitchSheetTabs), [i]], "oncontextmenu": UTF ? "" : [[U.M.StopBubble], [U.Excel.CreateContextMenu, ["Sheet"]]] }, _UDFD);    }    UDOD.appendChild(_UDFD);}//右键底部任务U.Excel.RWRD = function (UDOD) {    var _UDTD,    _UGE = U.Excel.SY,    _UDE = _UGE["CE"]["RW"],    i = _UDE.length,    _UDRD = $(_UGE["UAE"]["D"] || "#U_E_RWRD"),    _UDFD = $$("frag");    if (_UDRD[0].style.display == "block") { _UDRD[0].style.display = "none"; } //隐藏列表    else {//查看列表        _UDRD[0].innerText = "";        while (i--) {            _UDTD = $$("div", { "className": "U_E_CMOT" + ((!(i % 4) && i != _UDE.length - 2) ? " U_E_CMOO" : ""), "onmousedown": U.M.StopBubble, "onclick": [[U.Excel.SwitchSheetTabs, [i]], [U.Excel.YCCD]] }, _UDFD);            $$("div", { "innerHTML": "工作表" + (i + 1) }, _UDTD);        }        _UDRD.addAttrArray({ "style": { "display": "block", "top": (-(_UDE.length * 30) - 5) + "px", "height": (_UDE.length * 30) + "px"} }); _UDRD[0].appendChild(_UDFD);    }}//重新打印表格信息U.Excel.RefreshTable = function () {    var i,    _UGE = U.Excel.SY,    _UME = _UGE["UAE"],    _UDE = _UGE["CE"]["TF"],    _UAE = [_UME["L"], _UME["H"],    _UME["E"]], _UBE = ["U_E_LB", "U_E_TB", "U_E_TableArea"],    _USE = [["SPTP", 0, "L"], ["SPTP", 1, "T"], ["CBG"]];    for (i = 0; i < _UAE.length; i++) {        _UAE[i].innerText = "";        _UBE[i] = $$("div", { "className": _UBE[i] }, _UAE[i]);    }    _UBE[2].id = _UBE[2].className; //生成查看的元素    for (i = 0; i < _USE.length; i++) {        U.Excel[_USE[i][0]](_UDE[_USE[i][1]] || _UDE, _UBE[i], _USE[i][2]);    } //页面 头部 表格}//生成横竖排U.Excel.SPTP = function (UTF, UDOD, UTP) {    var i, _UDTD,    _UWH = 0,    _UCE = {},     _UDE = U.Excel.SY["CE"][UTP],     _UAE = UTP == "L" ? ["height", U.Excel.SY.Height + "px", "U_E_LBC", "U_E_LBS", "Left"] : ["width", U.Excel.SY.Width + "px", "U_E_TBC", "U_E_TBS", "Top"], _UDFD = $$("frag");    for (i = 0; i < UTF; i++) {        (!_UDE[i]) && (_UCE[_UAE[0]] = _UAE[1], _UDE[i] = { "style": _UCE });        _UWH += parseInt(_UDE[i].style[_UAE[0]]) + 1;        _UDTD = $$("div", {}, _UDFD); $$("div", { "style": _UDE[i]["style"], "innerHTML": i + 1, "className": _UAE[2], "onclick": [[U.Excel.RowsColsOnclick, ["this", UTP, i]]], "oncontextmenu": [[U.M.StopBubble], [U.Excel.RowsColsOnclick, ["this", UTP, i]], [U.Excel.CreateContextMenu, [_UAE[4], i]]] }, _UDTD);        $$("div", { "className": _UAE[3], "onmousedown": [[U.Excel.Draw, ["this", i, UTP]]] }, _UDTD);    }    try {        UDOD.innerText = "";        UDOD.appendChild(_UDFD);        U.Excel.GSPTP(UDOD, UTP, _UWH);    }    catch (e) {        _UDTD = $$("div");        _UDTD.appendChild(_UDFD);        UDOD.innerHTML = _UDTD.innerHTML;    }    return _UWH;}//生成表格U.Excel.CBG = function (UTF, UDOD) {    var i, _UAE,    _UWH = [U.Excel.SY.Height, U.Excel.SY.Width],    _UGE = U.Excel.SY,    _UDSD = $("#UD_SYQEFE")[0],    _UDE = _UGE["CE"]["Cell"],    _UL = _UDE.length ? _UDE.length : (UTF[0] * UTF[1]),    _UDFD = $$("frag");    for (i = 0; i < _UL; i++) {        _UAE = _UDE[i] = _UDE[i] || { "style": { "top": (Math.floor(i / UTF[1])) * (_UWH[0] + 1) + "px", "left": (Math.floor(i % UTF[1])) * (_UWH[1] + 1) + "px", "height": _UWH[0] + "px", "width": _UWH[1] + "px"} };        $$("div", { "innerHTML": (_UAE["innerHTML"] || "").replaceHtmlSign(), "ondblclick": [[U.Excel.EditFrameDoubleClick, [_UDSD]]], "style": _UAE["style"], "onmousedown": [[U.Excel.EditOnmousedown, ["this", i]]], "onmouseover": [[U.M.StopBubble], [U.Excel.CellOnmouseover, ["this", i]]], "oncontextmenu": [[U.M.StopBubble], [U.Excel.CreateContextMenu, ["Cell"]]] }, _UDFD);    }    try {        UDOD.innerText = "";        UDOD.appendChild(_UDFD);    }    catch (e) {        _UAE = $$("div");        _UAE.appendChild(_UDFD);        UDOD.innerHTML = _UTS.innerHTML;    }}//设置横竖排的滚动范围U.Excel.GSPTP = function (UDOD, UTF, UWH) {    var _UTP, _UDTD, _UDSD,    _UCE = { "style": {} },    _UGE = U.Excel.SY,    _UDE = _UGE["UAE"];    if (_UDE) {        _UDTD = _UDE["E"];        _UDSD = _UDE["T"];        _UTP = UTF == "L" ? "height" : "width";        _UDTD.style[_UTP] = UDOD.style[_UTP] = UWH + "px";        _UDSD.style[_UTP] = (UTF == "L" ? UWH + $(_UDSD).Parent().clientHeight - $(UDOD).Parent().clientHeight : UWH + 50) + "px";    }}//设置Excel显示长宽window.onresize = U.Excel.SetWH = function () {    var _UGE = U.Excel.SY["UAE"],    _UDOD = $("body")[0],    _UW = _UDOD.offsetWidth - 50 - (parent.U.D.SY.ET ? parent.U.D.SY.ET.GDTW : 13),    _UH = _UDOD.offsetHeight - 40;    if (_UGE && _UW) {        $("#U_E_Table")[0].style.height = _UH + "px";        $[_UGE["L"], _UGE["F"]].addAttrArray({ "style": { "height": (_UH - 46) + "px"} });        $("#U_E_CCH")[0].style.width = (_UW) + "px";    } //设置office长宽}//#endregion//-----------------------------------------------------------------------------底部任务切换------------------------------------------------------------------//工作表标签切换U.Excel.SwitchSheetTabs = function (UIF, UTF) {    var i, _UGE = U.Excel.SY,    _UDE = U.Excel.TF[U.Excel.SY["ID"]],    _UKE = _UGE["CE"]; _UGE["UW"] = window;    if (_UKE["TF"] !== _UDE["TF"][UIF]) {        U.Ut.AddObj(_UKE, { "TF": _UDE["TF"][UIF], "Cell": _UDE["Cell"][UIF], "T": _UDE["T"][UIF], "L": _UDE["L"][UIF] }); //设置当前使用的变量        for (i = 0; i < _UDE["RW"].length; i++) {            _UDE["RW"][i] = (i == UIF);        }; //切换到指定的工作目录        (!UTF) && (U.Excel.CNO());        return _UKE; //加载刷新表格    }}//新建文件(新建工作表)U.Excel.NWWJ = function () {    U.UI.Confirm("是否新建工作表", [U.Excel.NewTZB]);}//新建工作表U.Excel.NewTZB = function () {    var _UGE = U.Excel.SY,    _URE = _UGE["CE"]["RW"],    _UL = _URE.length,    _UDE = U.Excel.TF[U.Excel.SY["ID"]];    _UDE["RW"][_UL] = false;    _UDE["TF"][_UL] = [40, 20];    _UDE["T"][_UL] = [];    _UDE["L"][_UL] = [];    _UDE["Cell"][_UL] = []; //创建新变量    U.Excel.SwitchSheetTabs(_UL); //工作表标签切换}//--------------------------------------------------------------------------------保存--------------------------------------------------------------------------------//关闭保存文件U.Excel.CSave = function (UFUN) {    if (U.Excel.SY["BC"] && parent.US.userInfo.userid && U.Excel.SY["userid"] == parent.US.userInfo.userid) {        parent.U.UI.Confirm("是否更改保存文件", [U.Excel.Save, [UFUN]], UFUN);    } //关闭判断是否保存文件 && parent.U.Dk.M.ufinfoarray("onefind", U.Excel.TF["ID"]).UsOffice    else {        U.M.apply(this, [UFUN])();    } //关闭}//保存U.Excel.Save = function (UFUN) {    var _UGE = U.Excel.SY;    if (parent.US.userInfo.userid && _UGE["userid"] == parent.US.userInfo.userid) {        return parent.U.Dk.LE.USOS(_UGE["ID"], U.MS.jsonToStr(U.Excel.TF[_UGE["ID"]]), "UE", UFUN);    } //异步获取Excel    else {        parent.U.Alert("拒绝访问该文件");    }}//空文件保存异步U.Excel.YBKWJ = function () {    var _UGE = U.Excel.TF,    _UDE = arguments,    _UCB = _UDE[0];    U.Excel.BLSC(_UDE[1][1].UserDirectoryID, _UGE["ID"]); _UCB(_UDE[1]);    _UGE["ID"] = { "RW": [[]], "TF": [[40, 20]], "Cell": [[]], "L": [[]], "T": [[]] };    U.Excel.SY["BC"] = false;}//文件下载成指定的格式U.Excel.XZZDGS = function () {    top.U.D.Office.ZDGSXZ(U.Excel.TF["ID"], "html", U.Excel);}//#region 文件备份//备份U.Excel.Backup = function () {}//#endregion//#region//设置权限U.Excel.CoEd = function () {}//#endregion//---------------------------------------------------------------------------------功能------------------------------------------------------------------------------//----------------------------------------------------------------------------------------选择功能---------------------------------------------------------------------//选中效果U.Excel.RowsColsOnclick = function (UDOD, UTF, ITF) {    var i, _UDTD, _UDSD, _UST, _UET, _UME,    _UGE = U.Excel.SY,    _UDED = $("div", (_UGE["UAE"]["CE"] || $("#U_E_CCCE")[0])),    _UTL = _UGE["CE"]["TF"],    _UDE = _UGE["CE"]["Cell"],    _UDAD = $("div", $("#U_E_TableArea")[0]);    (!UDOD) && (UDOD = _UDAD[0]);    if (UTF == "D") {//选择区域变化        //选择框大小区域        _UST = _UDE[ITF[1]].style;        _UME = [_UST.left, _UST.top, _UST.width, _UST.height];        for (i = 0; i < _UME.length; i++) {            _UME[i] = parseInt(_UME[i]);        }        _UDTD = UDOD[0] || UDOD;        _UDSD = UDOD.length ? UDOD : [UDOD];        _UME = [[_UDTD.offsetTop, _UDTD.offsetLeft, 2, (_UME[0] + _UME[2] - _UDTD.offsetLeft)], [_UME[1] + _UME[3], _UDTD.offsetLeft, 2, (_UME[0] + _UME[2] - _UDTD.offsetLeft)], [_UDTD.offsetTop, _UDTD.offsetLeft, (_UME[1] + _UME[3] - _UDTD.offsetTop), 2], [_UDTD.offsetTop, (_UME[0] + _UME[2]), (_UME[1] + _UME[3] - _UDTD.offsetTop), 2]]; //线条范围设置        _UDED.addAttrArray({ "style": { "display": "block", "left": (_UME[3][1] - 6) + "px", "top": (_UME[1][0] - 6) + "px"} }, 2); //点的位置确定        for (i = 0; i < _UME.length; i++) {            _UDED.addAttrArray({ "style": { "display": "block", "top": _UME[i][0] + "px", "left": _UME[i][1] + "px", "height": _UME[i][2] + "px", "width": _UME[i][3] + "px"} }, i + 3);        } //设置线条        //设置选择的样式        U.Excel.SetHS(); //清除横竖排效果        U.Excel.SubTS(); //清除表格的样式        U.Excel.ChangeEditFrame(_UDTD); //编辑框的效果        U.Excel.ChangeSelectedCell(_UDSD); //改变选中的单元格的样式        U.Excel.ChangeHL(ITF, UTF); //对应的行列变化    }    else {//设置选择范围        UTF == "L" ? (_UST = _UTL[1] * ITF, _UET = _UST + _UTL[1] - 1) : UTF == "T" ? (_UST = ITF, _UET = ITF + (_UTL[1] * (_UTL[0] - 1))) : (_UST = 0, _UET = (_UTL[1] * _UTL[0]) - 1);        U.Excel.EditOnmousedown(_UDAD[_UST], _UST, true);        U.Excel.CellOnmouseover(_UDAD[_UET], _UET);        _UGE["TD"] = false; //模拟点击 //模拟移动        return;    }}//编辑框的效果U.Excel.ChangeEditFrame = function (UDOD) {    var _UDTD = $(U.Excel.SY["UAE"]["FE"] || "#U_E_EditFrame").addAttrArray({ "style": { "display": "block", "top": UDOD.offsetTop + "px", "left": UDOD.offsetLeft + "px"} }); //编辑框位置    $("div", _UDTD[0]).addAttrArray({ "style": { "backgroundColor": "", "width": (UDOD.offsetWidth - 2) + "px", "height": (UDOD.offsetHeight - 2) + "px"} }); //可编辑大小}//改变选中的单元格的样式U.Excel.ChangeSelectedCell = function (UDOD) {    var i, UST;    if (UDOD && UDOD.length > 0) {        if (U.M.HexBack((UST = UDOD[0].style).backgroundColor) == "#a6ffbf") {            UST.backgroundColor = "";        }        for (i = 1; i < UDOD.length; i++) {            (U.M.HexBack((UST = UDOD[i].style).backgroundColor) != "#a6ffbf") && (UST.backgroundColor = "#a6ffbf");        }    }}//清除单元格的样式U.Excel.SubTS = function () {    var i, _UST,    _UDAD = $("div", $("#U_E_TableArea")[0]),    _UDE = U.Excel.SY["CE"]["Cell"],     _UDSD = $$("div");    for (i = 0; i < _UDAD.length; i++) {        $(_UDSD).addAttrArray(_UDE[i]);        _UST = _UDAD[i].style;        if (_UST.backgroundColor && _UDSD.style.backgroundColor != _UST.backgroundColor) {            _UST.backgroundColor = "";        }    }}//对应的行列变化U.Excel.ChangeHL = function (ITF, UTF) {    var i, j, _UDAD,    _UDE = [],    _UGE = U.Excel.SY,    _UIT = _UGE["CE"]["TF"],    _UDOD = $($(U.Excel.SY["UAE"]["H"] || "#U_E_TitleBar").Child()[0]).Child(),    _UDTD = $($(U.Excel.SY["UAE"]["L"] || "#U_E_LeftLine").Child()[0]).Child();    _UDE = [[ITF[0] % _UIT[1], ITF[1] % _UIT[1], _UDOD], [ITF[0] / _UIT[1], ITF[1] / _UIT[1], _UDTD]]    for (i = 0; i < _UDE.length; i++) {        for (j = Math.floor(_UDE[i][0]); j <= Math.floor(_UDE[i][1]); j++) {            $(_UDE[i][2][j]).Child()[0].style.backgroundColor = "#a6ffbf";        }    } //设置选择的颜色}//清理竖排的样式U.Excel.SetHS = function () {    var i, j, _UTF = "backgroundColor",    _UST, _UDOD,    _UDAD = [$(U.Excel.SY["UAE"]["H"] || "#U_E_TitleBar"),    $(U.Excel.SY["UAE"]["L"] || "#U_E_LeftLine")];    for (i = 0; i < _UDAD.length; i++) {        _UDOD = $(_UDAD[i].Child()[0]).Child();        for (j = 0; j < _UDOD.length; j++) {            _UST = $(_UDOD[j]).Child()[0].style;            (U.M.HexBack(_UST[_UTF]) == "#a6ffbf") && (_UST[_UTF] = "");        }    }}//拉伸效果U.Excel.Draw = function (UDOD, UIF, UTF) {    var _UGE = U.Excel.SY,    _UDPD = $(UDOD).Parent(2),     _UDTD = [_UGE["CE"][UTF][UIF], $("div", UDOD.parentNode)[0]],     _UKE = { "style": {} },     _UE = U.M.GetMousep(),     _UTE = U.M.GetMousep(),     _UDE = U.Excel.GetHSP(UIF, UTF)["Cell"],     _UTP = UTF == "L" ? "height" : "width"; UDOD.setCapture(); //聚焦    document.onmousemove = function () {        var _UXE = U.M.GetMousep(),        _UX = _UXE["X"] - _UE["X"],        _UY = _UXE["Y"] - _UE["Y"];        _UE = _UXE;        _UDPD.style[_UTP] = parseInt(_UDPD.style[_UTP]) + (UTF == "L" ? _UY : _UX) + "px";        _UKE["style"][_UTP] = Math.max(((parseInt(_UDTD[0].style[_UTP]) || 25) + (UTF == "L" ? _UY : _UX)), 0) + "px";        $(_UDTD).addAttrArray(_UKE);        $(_UDE).addAttrArray(_UKE); _UDTD[1].onclick(); //设置变化大小//选中的效果    };    document.onmouseup = function () {        var _UDMD = $("#U_E_TableArea")[0], _UXE = U.M.GetMousep(), _UUE = { "left": (_UXE["X"] - _UTE["X"]), "top": (_UXE["Y"] - _UTE["Y"]) }; //变化的值        U.Excel.GXTS(UIF, UTF, _UUE); //更新数据        _UDMD.innerText = ""; U.Excel.CBG("", _UDMD); //从新刷新表格        _UDTD[1].onclick(); //选中的效果        U.Excel.GSPTP(_UDPD, UTF, parseInt(_UDPD.style[_UTP])); //重设滚动条大小        //释放焦点        UDOD.releaseCapture();        document.onmousemove = document.onmouseup = null    };}//获取指定横排 或者是竖排元素U.Excel.GetHSP = function (ITF, UTF) {    var i,    _UAE = { "Cell": [], "E": [] },    _UGE = U.Excel.SY["CE"],    _UDAD = $("div", $("#U_E_TableArea")[0]),    _UDE = _UGE["Cell"],    _UTL = _UGE["TF"],    _UKE = UTF == "L" ? [_UTL[1] * ITF, _UTL[1] * (ITF + 1), 1] : [ITF, _UTL[1] * _UTL[0], _UTL[1]];    for (i = _UKE[0]; i < _UKE[1]; i += _UKE[2]) {        _UAE["Cell"].push(_UDE[i]);        _UAE["E"].push(_UDAD[i]);    };    return _UAE; //选取横竖排指定的元素}//获取除拉伸区域外的元素U.Excel.GetNHSP = function (ITF, UTF) {    var i,    _UGE = U.Excel.SY["CE"],    _UTL = _UGE["TF"],    _UCE = _UGE["Cell"],    _UDE = { "Cell": [], "E": [] },    _UME = UTF == "L" ? [_UTL[1] * (ITF + 1), -1] : [ITF, ITF];    for (i = _UME[0]; i < _UCE.length; i++) {        if (i % _UTL[1] > _UME[1]) {            _            UDE["Cell"].push(_UCE[i]); _UDE["E"].push(i);        }    }; return _UDE;}//更新数据U.Excel.GXTS = function (ITF, UTF, UDE) {    var i,   _UAE = U.Excel.GetNHSP(ITF, UTF),   _UCE = _UAE["Cell"],   _UTP = UTF == "L" ? "top" : "left";    for (i = 0; i < _UCE.length; i++) {        _UCE[i].style[_UTP] = (parseInt(_UCE[i].style[_UTP]) + UDE[_UTP]) + "px";    } //更新数据    return _UAE;}//点击小点拖动U.Excel.DotOnclick = function () {    var _UGE = U.Excel.SY,    _USE = _UGE["SEO"],    _UKE = _UGE["C"][0],    _UDOD = (U.Excel.SY["UAE"]["FE"] || $("#U_E_EditFrame")[0]),    _UDTD = $("div", _UDOD)[0];    if (_USE[0]) {        U.Excel.EditOnmousedown(_USE[0], _USE[1]); //开始选择多个        (_UKE[_UKE.length - 1]) && (_UKE[_UKE.length - 1].onmouseover()); //移动到选择的位置        document.onmouseup = U.M.apply(this, [[U.Excel.SetWZ, [_USE[0].innerHTML]], [U.Excel.ESF]]); //释放    }}//固定区域插入文字U.Excel.SetWZ = function (UTH) {    var i,    _UGE = U.Excel.SY,    _UDE = _UGE["C"][0],    _UAE = _UGE["C"][1],    _UCE = _UGE["CE"]["Cell"];    $(_UDE).addAttrArray({ "innerHTML": UTH });    for (i = 0; i < _UAE.length; i++) {        _UCE[_UAE[i]].innerHTML = UTH;    } //插入值}//#region 移动选择单元格//点击移动U.Excel.EditOnmousedown = function (UDOD, UIE, UTF) {    if (UDOD != event) {        var i,        _UDSD = parent.$("#UD_SYQE input")[2],        _URE = U.OU.R,        _UDAD = parent.$("#UD_SYQE input"),        _UGE = U.Excel.SY,         _UDTD = $("div", (_UGE["UAE"]["FE"] || $("#U_E_EditFrame")[0]))[0];        (U.OU.R && !U.OU.TF["FTF"] && U.OU.TF.D) && (U.OU.OUWLJ(_UDSD, "G"));        U.OU.TF["FTF"] = true;        document.body.focus();        (_UDTD.onblur && _UDTD.onblur());        (UDOD) && (_UGE["SEO"] = [UDOD, UIE]); //赋值        if (event && event.keyCode < 2) {//非键盘事件            (!UDOD) && (UDOD = _UGE["SEO"][0], UIE = _UGE["SEO"][1]);            if (event.button != 2 || UTF) {//左键事件触发                _UGE["TD"] = true;                UDOD.onmouseover(); //移动选择                (!document.onmouseup) && (document.onmouseup = U.Excel.ESF); //设置取消                return;            }        }        if (U.Excel.ISROC[UDOD], "D", [UIE]) {            U.Excel.CellOnmouseover(UDOD, UIE, true);        } //判断是否直接切换    }}//释放U.Excel.ESF = function () {    U.Excel.YCCD(); U.Excel.SY["TD"] = false; document.onmouseup = null;}//选择多个单元格U.Excel.CellOnmouseover = function (UDOD, ITF, UTF) {    var _UGE = U.Excel.SY;    if (UTF || (_UGE["SEO"] && _UGE["TD"] && !U.M.onmouseout(UDOD))) {//是否进行拉选范围        var i, _UGE = U.Excel.SY,        _UL = _UGE["CE"]["TF"][1],        _UAE = U.Excel.GetHBTFW(UDOD, ITF),        _UDE = [[], []],        _UDAD = $("div", $("#U_E_TableArea")[0]);        for (i = _UAE[0]; i <= _UAE[1]; i++) {            if ((i % _UL >= _UAE[0] % _UL && i % _UL <= _UAE[1] % _UL)) {                _UDE[0].push(_UDAD[i]);                _UDE[1].push(i);            }        } //获取选择的        U.Excel.RowsColsOnclick(_UDE[0], "D", _UAE); //选择单元格        if (_UGE["SEO"][1] > _UAE[0]) {//编辑框的范围重新选择            if (_UGE["SEO"][0].offsetWidth > 0) {                U.Excel.ChangeEditFrame(_UGE["SEO"][0]); //编辑框的效果                U.Excel.ChangeSelectedCell[_UGE["SEO"][0], _UDE[0][0]]; //改变选中的单元格的样式            }            else {                _UGE["SEO"] = [_UDAD[_UAE[0]], _UAE[0]];            }        }        return (_UGE["C"] = _UDE);    }}//获取合并表格在的范围U.Excel.GetHBTFW = function (UDOD, ITF) {    if (typeof ITF == "number") {        var i, _UST, _UET,        _UGE = U.Excel.SY,        _UL = _UGE["CE"]["TF"][1],        _USL = _UGE["SEO"][1],        _UDE = _UGE["CE"]["Cell"], _UKE = [];        if (_USL % _UL > ITF % _UL) {//左边计算            if (_USL > ITF) {                _UKE[0] = ITF;                _UKE[1] = _USL;            } //下到上            else {                _UKE[0] = (ITF % _UL) + (Math.floor(_USL / _UL) * _UL);                _UKE[1] = (_USL % _UL) + (Math.floor(ITF / _UL) * _UL);            } //上到下        }        else {//右边的计算            if (_USL > ITF) {                _UKE[0] = (_USL % _UL) + (Math.floor(ITF / _UL) * _UL);                _UKE[1] = (ITF % _UL) + (Math.floor(_USL / _UL) * _UL);            } //下到上            else {                _UKE[0] = _USL; _UKE[1] = ITF;            } //上到下        }        for (i = _UKE[0]; i <= _UKE[1]; i++) {//判断是否有合并的单元格 重新计算范围            if ((((_UST = _UDE[i]["Start"]) != null) && (_UET = _UDE[i]["End"])) && (i % _UL >= _UKE[0] % _UL && i % _UL <= _UKE[1] % _UL)) {//范围不在选择的范围 我们重新计算范围                if (_UST % _UL < _UKE[0] % _UL) {                    if (_UST < _UKE[0]) {                        i = _UKE[0] = _UST;                    }                    else {                        i = _UKE[0] = (Math.floor(_UKE[0] / _UL) * _UL) + (_UST % _UL);                    }                }                else if (_UST < _UKE[0]) {                    i = _UKE[0] = Math.floor(_UST / _UL) * _UL + (_UKE[0] % _UL);                }                if (_UET % _UL > _UKE[1] % _UL) {                    if (_UET > _UKE[1]) {                        _UKE[1] = _UET;                    }                    else { _UKE[1] = (Math.floor(_UKE[1] / _UL) * _UL) + (_UET % _UL); }                }                else if (_UET > _UKE[1]) {                    _UKE[1] = (Math.floor(_UET / _UL) * _UL) + (_UKE[1] % _UL);                }            }        }    }    return _UKE;}//判断是否变成选中效果U.Excel.ISROC = function (UDOD, UTF, ITF) {    var i,    _UFT = true,    _UDE = U.Excel.SY["C"];    if (event && event.button == 2 && UTF == "D") {        for (i = 0; i < _UDE[1].length; i++) {            if (_UDE[1][i] == ITF[0]) {                _UFT = !_UFT; break;            }        }        if (_UFT) {            _UDE = [UDOD, ITF];        }    }    return _UFT;}//#endregion//-------------------------------------------------------------------------------------编辑区域-----------------------------------------------------------------------document.onkeydown = function () {    (event.srcElement.className != "U_E_ASRT") && (U.Excel.Onkeydown());}//双击变成可编辑U.Excel.EditFrameDoubleClick = function (UDOD) {    var _UDTD = U.Excel.SY["SEO"][0],    _UDSD = $("div", UDOD);    _UDSD = _UDSD.addAttrArray({ "onblur": [U.Excel.EditFrameOnblur, ["this", _UDTD]], "onselectstart": null, "contentEditable": "true",        "className": "U_E_CFEO", "style": { "cssText": "", "height": _UDSD[0].style.height, "width": _UDSD[0].style.width }    }, 0)[0]; //设置可编辑    _UDSD.focus();    UDOD.onmousedown = UDOD.ondblclick = null;    U.OU.SCJD(_UDSD, _UDTD.innerHTML, "");    U.Excel.SY["BC"] = true;    _UDTD.innerText = "";}//触发编辑应用U.Excel.Onkeydown = function () {    if (U.Excel.SY["UAE"]) {        var _UDOD = (U.Excel.SY["UAE"]["FE"] || $("#U_E_EditFrame")[0]),        _UDPD = $("div", _UDOD)[0],        _UKC = event.keyCode,        _UKE = { 9: "R", 13: "B", 108: "B", 38: "T", 40: "B", 37: "L", 39: "R" };        if (_UKE[_UKC]) {            U.Excel.Enter(_UKE[_UKC]);        } //移动选择 上下左右 tab enter        else if (_UDPD.contentEditable != "true" && (_UKC == 229 || ((_UKC > 47 && _UKC < 58) || (_UKC > 64 && _UKC < 91)) || ((_UKC > 95 && _UKC < 112) && (_UKC != 100)))) { //输入直接选择            U.Excel.EditFrameDoubleClick(_UDOD);        }    }}//单元格换格子事件U.Excel.Enter = function (UTF, UIT) {    var _UDED,    _UDAD = $("div", $("#U_E_TableArea")[0]),     _UIE = U.Excel.SY["CE"]["TF"];    UIT = UIT || U.Excel.SY["SEO"][1]; //UIT    switch (UTF) {        case "T": (UIT - _UIE[1] >= 0) && (_UDED = _UDAD[UIT - _UIE[1]]);            break; //上        case "L": (UIT - 1 >= Math.floor(UIT / _UIE[1]) * _UIE[1]) && (_UDED = _UDAD[UIT - 1]);            break; //左  _UIE[0] * _UIE[1]        case "B": (UIT + _UIE[1] < _UIE[0] * _UIE[1]) && (_UDED = _UDAD[UIT + _UIE[1]]);            break; //下        case "R": (UIT + 1 < (Math.floor(UIT / _UIE[1]) + 1) * _UIE[1]) && (_UDED = _UDAD[UIT + 1]);            break; //右    }    if (_UDED) { _UDED.onmousedown(); }}//编辑框失去焦点U.Excel.EditFrameOnblur = function (UDOD, UDTD) {    if (UDOD && UDOD != event && (UDOD.contentEditable == "true" || UDOD.innerText != "") && U.OU.TF["FTF"]) { //失去焦点        var _UDS = UDTD.style,        _UDPD = UDOD.parentNode,        _UGE = U.Excel.SY,        _UDE = _UGE["CE"]["Cell"][_UGE["SEO"][1]],        _USE = UDOD.style.cssText;        UDTD = _UGE["SEO"][0] || UDTD;        //编辑成功保存设置        $(UDTD).addAttrArray({ "innerHTML": (_UDE.innerHTML = UDOD.innerHTML), "style": { "cssText": _USE, "height": _UDS.height, "width": _UDS.width, "left": _UDS.left, "top": _UDS.top} }); _UDE.style.cssText = UDTD.style.cssText;        //可编辑区域设置        $(UDOD).addAttrArray({ "contentEditable": "false", "style": { "cssText": "" }, "className": "", "innerHTML": "", "onblur": null, "onselectstart": U.M.StopBubble });        $(_UDPD).addAttrArray({ "ondblclick": [[U.Excel.EditFrameDoubleClick, [_UDPD, true]]], "onmousedown": U.Excel.EditOnmousedown }); //设置点击事件     }    else { } //  U.OU.TF["FTF"] = true; U.OU.JDCR(); }//--------------------------------------------------------------------------------右键菜单功能-----------------------------------------------------------------------//右键菜单出现和赋值U.Excel.CreateContextMenu = function (UTF, ITF) {    U.M.StopDefault();    var i, _UH, _UDTD,    _UDSD = $("#UD_SYQET").Parent(),    _UE = U.M.GetMousep(),    _UDOD = $(U.Excel.SY["UAE"]["R"] || "#U_E_ContextMenu"),    _UDFD = $$("frag"), _UKE = U.Excel.SY["RM"],    _UAE = _UKE["MO"],     _UCE = { "Cell": ["SO", "CO"], "CellS": ["SO"], "Left": ["LO"], "Top": ["TO"], "Sheet": "TO"}[UTF];    if (_UCE) {//右键菜单        if (_UCE instanceof Array) {            for (i = 0; i < _UCE.length; i++) {                _UAE = _UAE.concat(_UKE[_UCE[i]]);            }        }        else { _UAE = _UKE[_UCE]; }    }    else { _UAE = _UKE["CO"]; }    for (i = 0; i < _UAE.length; i++) {//生成右键菜单        _UDTD = $$("div", { "className": "U_E_CMO", "style": (!((i + 1) % 4) && i != _UAE.length - 1) ? { "borderBottom": "1px solid #cbcbcb"} : {}, "onmousedown": U.M.StopBubble, "onclick": [[U.Excel.YCCD], [_UAE[i][2], [ITF]]] }, _UDFD);        $$("div", { "innerHTML": _UAE[i][1] }, _UDTD);    }    _UH = _UAE.length * 31;    (UTF == "Sheet") && (_UE = U.M.GetElementAllInfo(event.srcElement), _UE["X"] = _UE["TX"] - 1, _UE["Y"] = _UE["TY"] - _UH);    (_UE["X"] + 100 > _UDSD.offsetWidth) && (_UE["X"] -= 100);    (_UE["Y"] + _UH > _UDSD.offsetHeight) && (_UE["Y"] -= _UH);  //位置重新定制    _UDOD[0].innerText = "";    _UDOD[0].appendChild(_UDFD);    _UDOD.addAttrArray({ "style": { "display": "block", "left": _UE["X"] + "px", "top": _UE["Y"] + "px"} }); //弹出右键菜单}//合并单元格U.Excel.MergeCells = function () {    var i, j,    _UGE = U.Excel.SY,    _UDE = _UGE["C"],    _UCE = _UGE["CE"]["Cell"],    _UST = _UDE[1][0],    _UET = _UDE[1][_UDE[1].length - 1],    _UDOD = _UDE[0][0],    _UDTD = _UDE[0][_UDE[0].length - 1],    _UPE = [[_UDTD, "left", "width", "top", "height"], [_UDOD, "left", "top"]];    if (_UDE[0].length > 1) {        for (i = 0; i < _UPE.length; i++) {            for (j = 1; j < _UPE[i].length; j++) {                _UPE[i][j] = parseInt(_UPE[i][0].style[_UPE[i][j]]);            }        }        for (i = 0; i < _UDE[0].length; i++) {            $(_UCE[_UDE[1][i]]).addAttrArray({ "style": { "display": "none" }, "Start": _UST, "End": _UET });        } //设置值        $(_UDE[0]).addAttrArray({ "style": { "display": "none"} }); //设定隐藏合并的范围        $[_UDOD, _UCE[_UDE[1][0]]].addAttrArray({ "style": { "display": "block", "width": _UPE[0][1] + _UPE[0][2] - _UPE[1][1] + "px", "height": _UPE[0][3] + _UPE[0][4] - _UPE[1][2] + "px"} }); //设置可见值    }    U.Excel.EditOnmousedown(_UDE[0][0], _UDE[1][0]);    U.Excel.SY["TD"] = false; //合并后的区域设为可编辑区域}//拆分单元格U.Excel.SplitCell = function () {    var _UGE = U.Excel.SY,    _UDE = _UGE["CE"]["Cell"],     _USE = _UGE["SEO"],     _US = _UDE[_USE[1]]["Start"],      _UE = _UDE[_USE[1]]["End"];    if (_US) {        var i, _UW, _UH,        _UDAD = $("div", $("#U_E_TableArea")[0]),        _UTL = _UGE["CE"]["TF"][1],         _UCE = _UGE["CE"]["Cell"],         _UDOD = $($(U.Excel.SY["UAE"]["H"] || "#U_E_TitleBar").Child()[0]).Child(),          _UDTD = $($(U.Excel.SY["UAE"]["L"] || "#U_E_LeftLine").Child()[0]).Child();        for (i = _US; i <= _UE; i++) { //查封合并的            if (i % _UTL >= _US % _UTL && i % _UTL <= _UE % _UTL) {                if ($(_UDAD[i]).css("width").toInt() > _UDOD[Math.floor(i % _UTL)].offsetWidth) {                    $[_UDAD[i], _UCE[i]].css({ "width": _UDOD[Math.floor(i % _UTL)].offsetWidth - 1 + "px", "height": _UDTD[Math.floor(i % _UTL)].offsetHeight - 1 + "px" });                }                $(_UCE[i]).addAttrArray({ "style": { "display": (_UDAD[i].style.display = "block") }, "Start": null, "End": null });            }        }    }}//清空内容U.Excel.EmptyContent = function () {    var i,    _UGE = U.Excel.SY,    _ULE = _UGE["C"][1],     _UDE = _UGE["CE"]["Cell"],     _UDAD = $("div", $("#U_E_TableArea")[0]);    for (i = 0; i < _ULE.length; i++) {        _UDAD[_ULE[i]].innerHTML = _UDE[_ULE[i]].innerHTML = "";    } //清空值}//复制U.Excel.CopyFunction = function () {    var i,    _UGE = U.Excel.SY,    _UKE = _UGE["C"], _UL = _UKE[1],    _UTL = _UGE["CE"]["TF"],    _UCJ = (_UL[_UL.length - 1] - _UL[0]);    _UGE["CP"] = { "Cell": [], "E": _UL, "CJ": [_UCJ % _UTL[1], Math.floor(_UCJ / _UTL[1])], "CI": [_UTL[0], _UTL[1]] };    for (i = 0; i < _UL.length; i++) { _UGE["CP"]["Cell"].push(_UKE[0][i].innerHTML); } //复制值}//剪切U.Excel.Cut = function () {    U.Excel.CopyFunction();    U.Excel.EmptyContent();}//粘贴U.Excel.Paste = function () {    var i, _UXC, _UOI, _UTF,    _UME = [],    _UGE = U.Excel.SY,    _UTL = _UGE["CE"]["TF"],    _UCE = _UGE["CP"],    _UKE = _UGE["C"],    _UTL = _UGE["CE"]["TF"],    _UDAD = $("div", $("#U_E_TableArea")[0]);    if (_UCE["E"].length) {        _UXC = [((_UKE[1][0] % _UTL[1]) + _UCE["CJ"][0]) - _UTL[1] + 1, (Math.floor(_UKE[1][0] / _UTL[1]) + _UCE["CJ"][1] - _UTL[0]) + 1];        for (i = 0; i < _UXC.length; i++) { //扩充横竖排            if (_UXC[i] > 0) {                for (j = 0; j < _UXC[i]; j++) {                    U.Excel.InsertRowsCols.apply(this, i ? ["B", [_UTL[1] * (_UTL[0] - 1), _UTL[1] * _UTL[0] - 1], _UTL[0] - 1, true] : ["R", [_UTL[1] - 1, _UTL[1] * _UTL[0] - 1], _UTL[1] - 1, true]);                }                _UTF = true;            }        }        _UOI = (_UKE[1][0] + ((_UTL[1] - _UCE["CI"][1]) * Math.floor(_UKE[1][0] / _UCE["CI"][1]))) - ((Math.floor(_UCE["E"][0] / _UCE["CI"][1]) * _UTL[1]) + (_UCE["E"][0] % _UCE["CI"][1]));        for (i = 0; i < _UCE["E"].length; i++) {            _UME.push(_UOI + (Math.floor(_UCE["E"][i] / _UCE["CI"][1]) * _UTL[1]) + (_UCE["E"][i] % _UCE["CI"][1]));            _UGE["CE"]["Cell"][_UME[_UME.length - 1]].innerHTML = _UCE["Cell"][i];        } //设置粘贴值的位置        if (_UTF) { U.Excel.RefreshTable(); }        else {            for (i = 0; i < _UME.length; i++) {                _UDAD[_UME[i]].innerHTML = _UCE["Cell"][i];            };        } //值变化        U.Excel.EditOnmousedown(_UDAD[_UME[0]], _UME[0]);        U.Excel.CellOnmouseover(_UDAD[_UME[_UME.length - 1]], _UME[_UME.length - 1]);        U.Excel.SY["TD"] = false; U.Excel.YCCD(); //重新聚焦位置    }}//插入横竖排U.Excel.InsertRowsCols = function (UTF, UFW, UIT, UFT) {    var i, j, k, _UTS = {},    _UJE = [],    _UDOD = $($(U.Excel.SY["UAE"]["H"] || "#U_E_TitleBar").Child()[0]).Child(),    _UDTD = $($(U.Excel.SY["UAE"]["L"] || "#U_E_LeftLine").Child()[0]).Child(),    _UGE = U.Excel.SY, _USE = U.Excel.SY["SEO"],    _UTL = _UGE["CE"]["TF"], _UCE = _UGE["CE"]["Cell"];    if ("TB".indexOf(UTF) > -1) {//插入横排        (UFW && !UFW.length) && (UIT = UFW, UFW = null);        UIT = UIT || (_USE[1] / _UTL[1]); UFW = UFW || [UIT * _UTL[1], (UIT + 1) * _UTL[1] - 1];        (UTF == "B" && UIT != (_UTL[0] - 1)) && (UFW[0] += _UTL[1], UFW[1] += _UTL[1], UIT++); //向下插入        for (i = UFW[0]; i <= UFW[1]; i++) {            _UJE.push({ "innerHTML": _UCE[i].innerHTML, "style": { "width": U.Excel.SY.Width + "px", "height": U.Excel.SY.Height + "px", "top": _UCE[i].style.top, "left": _UCE[i].style.left, "display": _UCE[i].style.display || "" }, "End": _UCE[i]["End"], "Start": _UCE[i]["Start"] }); (_UCE[i]["End"]) && (_UTS[_UCE[i]["Start"]] = _UCE[i]["End"]);        } //插入数据        for (i in _UTS) {            if (Math.floor(i / _UTL[1]) == UIT) {                for (j = i % _UTL[1]; j <= _UTS[i] % _UTL[1]; j++) {                    $(_UJE[j]).addAttrArray({ "style": { "display": "block" }, "End": null, "Start": null });                }            } //显示            else {                _UCE[i].style.height = parseInt(_UCE[i].style.height) + 31 + "px"; //起始点大小                for (j = i; j < UIT * _UTL[1]; j++) {                    if (_UCE[j]["End"] && (j % _UTL[1] >= i % _UTL[1] && j % _UTL[1] <= _UTS[i] % _UTL[1])) {                        _UJE[j % _UTL[1]]["End"] = (_UCE[j]["End"] += _UTL[1]);                    }                }            } //起始点放大到指定的大小        }        (UIT == (_UTL[1] - 1)) && (UFW[0] += 1); _UTL[0] += 1;        for (i = _UJE.length - 1; i >= 0; i--) { _UCE.splice(UFW[0], 0, _UJE[i]); } //插入        _UJE = U.Excel.GXTS(UIT, "L", { "left": 0, "top": 31 })["Cell"]; //改变变化        for (i = 0; i < _UJE.length; i++) {            if (((j = _UJE[i]["Start"]) != null)) {                (parseInt(j / _UTL[1]) >= UIT) && (_UJE[i]["Start"] += _UTL[1]);                _UJE[i]["End"] += _UTL[1];            }        }        _UGE["CE"]["L"].splice(UIT, 0, { "style": { "height": U.Excel.SY.Height + "px"} }); //添加竖排选择    }    else {        (UFW && !UFW.length) && (UIT = UFW, UFW = null);        UIT = UIT || (_USE[1] % _UTL[1]); UFW = UFW || [UIT, _UTL[0] * _UTL[1]];        (UTF == "R" && UIT != (_UTL[1] - 1)) && (UFW[0] += 1, UIT++);        for (i = UFW[0]; i <= UFW[1]; i += _UTL[1]) {            _UJE.push({ "style": { "width": U.Excel.SY.Width + "px", "height": U.Excel.SY.Height + "px", "top": _UCE[i].style.top, "left": _UCE[i].style.left, "display": _UCE[i].style.display || "" }, "End": _UCE[i]["End"], "Start": _UCE[i]["Start"] }); (_UCE[i]["End"]) && (_UTS[_UCE[i]["Start"]] = _UCE[i]["End"]);        }        for (i in _UTS) {            i = parseInt(i);            if ((i % _UTL[1] == UIT && UTF == "L") || (_UTS[i] % _UTL[1] - 1) == UIT && UTF == "R") { for (j = Math.floor(i / _UTL[1]); j <= (Math.floor(_UTS[i] / _UTL[1]) + 1); j++) { $(_UJE[j]).addAttrArray({ "style": { "display": "block" }, "End": null, "Start": null }); } } //  _UJE[j].style.display = "block";             else { _UCE[i].style.width = parseInt(_UCE[i].style.width) + 161 + "px"; } //起始点大小        }        (UIT == (_UTL[1] - 1)) && (UFW[0] += 1); _UTL[1]++;        for (i = UFW[0]; i < _UTL[1] * _UTL[0];        i += _UTL[1]) { _UCE.splice(i, 0, _UJE[Math.floor(i / _UTL[1])]); } //插入        _UJE = U.Excel.GXTS(UIT, "T", { "left": 161, "top": 0 })["Cell"]; //改变变化        for (i = 0; i < _UCE.length; i++) {            if (_UCE[i]["End"]) {                if (_UCE[i]["Start"] >= UIT) {                    _UCE[i]["Start"] += (parseInt(_UCE[i]["Start"] / (_UTL[1] - 1)) + ((_UCE[i]["Start"] % (_UTL[1] - 1) >= UIT) ? 1 : 0));                }                if (_UCE[i]["End"] > UIT) {                    _UCE[i]["End"] += (parseInt(_UCE[i]["End"] / (_UTL[1] - 1)) + ((_UCE[i]["End"] % (_UTL[1] - 1) < UIT) ? 0 : 1));                }            }        }        _UGE["CE"]["T"].splice(UIT, 0, { "style": { "width": "160px"} }); //添加竖排选择    }    (!UFT) && (U.Excel.RefreshTable(), (("TB".indexOf(UTF) > -1) ? _UDTD : _UDOD)[UIT].onclick()); //更新}//删除行U.Excel.DeleteRowsCols = function (UTF, ITF) {    var i, _UST, _UET, _UDE,    _UGE = U.Excel.SY,    _UCE = _UGE["CE"],    _UTL = _UCE["TF"],    _UKE = _UCE["Cell"];    if (UTF == "L") {//行删除        _UDE = _UKE.splice(ITF * _UTL[1], _UTL[1]); //删除的表格数据        for (i = 0; i < _UDE.length; i++) {            if ((_UET = _UDE[i]["End"])) {                if (Math.floor((_UST = _UDE[i]["Start"]) / _UTL[1]) == ITF && Math.floor(_UET / _UTL[1]) > ITF) {                    $(_UKE[_UST]).addAttrArray({ "style": { "width": _UDE[i].style.width, "height": parseInt(_UDE[i].style.height) - parseInt(_UCE["L"][ITF].style.height) - 1 + "px", "display": "block" }, "innerHTML": _UDE[i].innerHTML || "" });                } //重新设置                else if (Math.floor(_UST / _UTL[1]) != ITF && Math.floor(_UET / _UTL[1]) >= ITF) {                    $(_UKE[_UST]).addAttrArray({ "style": { "height": parseInt(_UKE[_UST].style.height) - (parseInt(_UCE["L"][ITF].style.height) || U.Excel.SY.Height) - 1 + "px"} });                } //设置                i = _UET % _UTL[1];            }        }        U.Excel.GXTS(ITF - 1, UTF, { "top": -(parseInt(_UCE["L"][ITF].style.height) + 1), "left": 0 }); //删除后的修改        _UCE["L"].splice(ITF, 1); _UTL[0]--; //删除列的信息        for (i = 0; i < _UKE.length; i++) { //解决位置变化后的合并的起始结束的问题            if ((_UET = _UKE[i]["End"])) {                if (Math.floor((_UST = _UKE[i]["Start"]) / _UTL[1]) > ITF) {                    _UKE[i]["Start"] -= _UTL[1];                }                _UKE[i]["End"] -= _UTL[1];            }        }    }    else {//列删除        _UDE = [];        for (i = 0; i < _UTL[0]; i++) {            _UDE.push(_UKE.splice(ITF + (i * _UTL[1]) - i, 1)[0]);        } //删除表格的值        for (i = 0; i < _UDE.length; i++) {            if ((_UET = _UDE[i]["End"])) {                if ((_UST = _UDE[i]["Start"]) % _UTL[1] == ITF && _UET % _UTL[1] > ITF) {                    $(_UKE[_UST - Math.floor(_UST / _UTL[1])]).addAttrArray({ "style": { "width": parseInt(_UDE[i].style.width) - parseInt(_UCE["T"][ITF].style.width) - 1 + "px", "height": _UDE[i].style.height, "display": "block" }, "innerHTML": _UDE[i].innerHTML || "" });                }                else if (_UST % _UTL[1] != ITF && _UET % _UTL[1] >= ITF) {                    $(_UKE[_UST - Math.floor(_UST / _UTL[1])]).addAttrArray({ "style": { "width": parseInt(_UKE[_UST - Math.floor(_UST / _UTL[1])].style.width) - (parseInt(_UCE["L"][ITF].style.width) || 160) - 1 + "px"} });                }                i = Math.floor(_UET / _UTL[1]);            }        }        _UCE["T"].splice(ITF, 1);        _UTL[1]--; //删除列的信息        U.Excel.GXTS(ITF - 1, UTF, { "top": 0, "left": -(parseInt(_UCE["T"][ITF].style.width) + 1) }); //删除后的修改        for (i = 0; i < _UKE.length; i++) { //解决位置变化后的合并的起始结束的问题            if ((_UET = _UKE[i]["End"])) {                _UKE[i]["Start"] -= parseInt(_UKE[i]["Start"] / (_UTL[1] + 1));                _UKE[i]["End"] -= (parseInt(_UET / (_UTL[1] + 1)) + 1);            }        }    }    U.Excel.RefreshTable(); //从新刷新表格}//删除工作页U.Excel.DelectSheet = function () {    var i, j,    _UGE = U.Excel.TF[U.Excel.SY["ID"]],    _UDE = U.Excel.SY["CE"];    if (_UGE.length != 1) {//工作页要大于一        for (i = 0; i < _UGE.length; i++) {            if (_UGE[i]["Cell"] == _UDE["Cell"]) {                for (j in _UDE) { _UGE[i][j].splice(i, 1); }            } //移除工作表变量        }        U.Excel.SwitchSheetTabs(i - 1 < 0 ? 0 : i - 1); //切换到指定    }}//隐藏菜单U.Excel.YCCD = function () {    var i, _UGE = U.Excel.SY["UAE"],    _UDE = [["D", "U_E_RWRD"], ["R", "U_E_ContextMenu"]];    U.OU.SDYC(null, true); //隐藏默认的菜单    for (i = 0; i < _UDE.length; i++) {        (_UGE[_UDE[i][0]] || $("#" + _UDE[i][1])).style.display = "none";    } //隐藏Excel菜单}//---------------------------------------------------------------------------------滚动条功能-------------------------------------------------------------------------//滚动条U.Excel.BS = function (UDOD) {    var _UGE = U.Excel.SY["UAE"],    _UT = UDOD.scrollTop,    _UL = UDOD.scrollLeft,    _UDTD = _UGE["F"] || $("#U_E_CellF")[0],    _UDSD = _UGE["L"] || $("#U_E_LeftLine")[0],    _UDMD = _UGE["H"] || $("#U_E_TitleBar")[0];    if (_UT - _UDTD.scrollTop) {        _UDTD.scrollTop = _UT; _UDSD.scrollTop = _UDTD.scrollTop;    } //滚动表和左边的变化    if (_UL - _UDTD.scrollLeft) {        _UDTD.scrollLeft = _UL; _UDMD.scrollLeft = _UDTD.scrollLeft;    } //滚动表头部的变化}//滚动条变化U.Excel.GBH = function () {    var _UW = event.wheelDelta,    _UWD = _UW ? (_UW / 120) : (-event.detail / 3);    $(U.Excel.SY["UAE"]["T"] || "#U_E_CB").Parent().scrollTop -= _UWD * 50;}window.onerror = function () { return true; }document.oncontextmenu = U.M.StopDefault;
 |