📄 toolbar.js
字号:
}function SHTB_openCopyData(pos,text){var pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'c+='<tr><td>Copy the text in the box below: (Ctrl+C / right click)</td></tr>'c+='<tr><td>'c+='<textarea id="shui_tb_copydata" rows="10" cols="60"></textarea>'c+='</td></tr>'c+='<tr height="10"><td></td></tr>'c+='<tr><td align="center"><input type="button" value="Close" onclick="SHTB_close()" />'c+='</td></tr></table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)var ta=document.getElementById('shui_tb_copydata')ta.value=textta.select()setTimeout("document.getElementById('shui_tb_copydata').select()",200)}function SHTB_openPasteData(pos,title,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'c+='<tr><td>Paste the '+title+' in the box below: (Ctrl+V / right click)</td></tr>'c+='<tr><td><textarea id="shui_tb_pastedata" rows="10" cols="40" wrap="off"></textarea></td></tr>'c+='<tr height="10"><td></td></tr>'c+='<tr><td colspan="2" align="center">'c+='<input type="button" value="OK" onclick="SHTB_handlePaste()" />'c+='<input type="button" value="Cancel" onclick="SHTB_close()" />'c+='</td></tr></table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)setTimeout('document.getElementById("shui_tb_pastedata").focus()',200)}function SHTB_handlePaste(){var text=document.getElementById("shui_tb_pastedata").valuevar event={text:text}eval( SHTB_handler(event))SHTB_close()}function SHTB_openExportDelimitedText(pos,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'c+='<tr><td>Select the delimiter:</td></tr>'c+='<tr><td><input type="radio" id="shui_tb_deltab" name="shui_tb_delimiter" checked="true" /> Tab</td></tr>'c+='<tr><td><input type="radio" id="shui_tb_delcomma" name="shui_tb_delimiter" /> Comma (,)</td></tr>'c+='<tr height="10"><td></td></tr>'c+='<tr><td>What should be exported:</td></tr>'c+='<tr><td><input type="radio" id="shui_tb_valtypev" checked="true" name="shui_tb_expvaltype" /> Values (typed or computed)</td></tr>'c+='<tr><td><input type="radio" id="shui_tb_valtypet" name="shui_tb_expvaltype" /> Texts (e.g. the formula itself)</td></tr>'c+='<tr height="10"><td></td></tr>'c+='<tr><td colspan="2" align="center">'c+='<input type="button" value="OK" onclick="SHTB_handleExportDelimited()" />'c+='<input type="button" value="Cancel" onclick="SHTB_close()" />'c+='</td></tr></table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)}function SHTB_handleExportDelimited(){var sep=document.getElementById('shui_tb_delcomma').checked?',':'\t'var type=document.getElementById('shui_tb_valtypev').checked?'value':'text'var event={sep:sep,valueType:type}eval( SHTB_handler(event))SHTB_close()}function SHTB_openAddDelMenu(pos,fr,tr,fc,tc,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'if(fr)c+=SHTB_menuOption(null,'Delete row'+(tr>fr?'s':'')+' '+fr+(tr>fr?'-'+tr:''),'del-rows',true)if(fc)c+=SHTB_menuOption(null,'Delete column'+(fc!=tc?'s':'')+' '+fc+(fc!=tc?'-'+tc:''),'del-cols',true)c+=SHTB_menuSeperator()if(fr){c+=SHTB_menuOption(null,'Add a row before row '+fr,'insr-before',true)c+=SHTB_menuOption(null,'Add a row after row '+tr,'insr-after',true)}if(fc){c+=SHTB_menuOption(null,'Add a column before column '+fc,'insc-before',true)c+=SHTB_menuOption(null,'Add a column after column '+tc,'insc-after',true)}c+='</table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)}function SHTB_openChartMenu(pos,hasSelChart,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'c+=SHTB_menuOption('pic','Add an image from URL','addimgurl',true)c+=SHTB_menuSeperator()c+=SHTB_menuOption('pie','Add a pie chart','pie',true)c+=SHTB_menuOption('column','Add a columns chart','columns',true)c+=SHTB_menuOption('bar','Add a bars chart','bars',true)c+=SHTB_menuOption('line','Add a line chart','line',true)c+=SHTB_menuSeperator()c+=SHTB_menuOption(null,'Edit selected chart','edit-chart',hasSelChart)c+='</table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)}function SHTB_openUrl(pos,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'c+='<tr><td>URL of image:</td></tr>'c+='<tr><td><input type="text" size="60" id="shui_load_url" value="http://" /></td></tr>'c+='<tr height="10"><td></td></tr>'c+='<tr><td align="center">'c+='<input type="button" value="OK" onclick="SHTB_handleUrl()" />'c+='<input type="button" value="Cancel" onclick="SHTB_close()" />'c+='</td></tr></table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)setTimeout("document.getElementById('shui_load_url').select()",200)}function SHTB_handleUrl(){var url=document.getElementById('shui_load_url').valueif(url.length>0){var event={url:url}eval( SHTB_handler(event))}SHTB_close()}function SHTB_openChart(pos,defs,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="2" cellspacing="0">'c+='<tr><td>Chart type:</td><td>'+defs.type+'</td></tr>'c+='<tr><td>Data range:</td><td><input type="text" size="10" id="shui_tb_dr" value="'+defs.range+'" /></td></tr>'c+='<tr><td>Series in:</td><td><input type="radio" name="shui_tb_series" id="shui_tb_serc" '+(defs.incols?'checked="true" ':'')+'/>Columns'c+='  <input type="radio" name="shui_tb_series" '+(defs.incols?'':'checked="true" ')+'/>Rows</td></tr>'c+='<tr><td>Title:</td><td><input type="text" size="30" id="shui_tb_title" value="'+(defs.title?defs.title:'')+'" /></td></tr>'if(defs.type=='bars'||defs.type=='columns'||defs.type=='line'){c+='<tr><td>X-axis title:</td><td><input type="text" size="30" id="shui_tb_titlex" value="'+(defs.titlex?defs.titlex:'')+'" /></td></tr>'c+='<tr><td>Y-axis title:</td><td><input type="text" size="30" id="shui_tb_titley" value="'+(defs.titley?defs.titley:'')+'" /></td></tr>'}var leg=defs.isnew||defs.legendc+='<tr><td>Show legend:</td><td><input type="checkbox" id="shui_tb_legend" '+(leg?'checked="true" ':'')+' /></td></tr>'var d3=defs.isnew||defs.d3c+='<tr><td>3D:</td><td><input type="checkbox" id="shui_tb_3d" '+(d3?'checked="true"':'')+' /></td></tr>'if(defs.type=='bars'||defs.type=='columns'){c+='<tr><td>Stacked:</td><td><input type="checkbox" id="shui_tb_stacked" '+(defs.stacked?'checked="true" ':'')+'/> (stacked values are accumulated one on top of the other)</td></tr>'}c+='<tr height="10"><td></td></tr>'c+='<tr><td colspan="2" align="center">'c+='<input type="hidden" id="shui_chart_type" value="'+defs.type+'" />'c+='<input type="hidden" id="shui_chart_new" value="'+(defs.isnew?'y':'')+'" />'c+='<input type="button" value="OK" onclick="SHTB_handleChart()" /> 'c+='<input type="button" value="Cancel" onclick="SHTB_close()" />'c+='</td></tr></table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)}function SHTB_handleChart(type){var data=document.getElementById('shui_tb_dr').valueif(data==''){alert('Chart data range must be entered (example - A1:D4)\n\nYou can close the chart definition, select the values for the chart (by mouse drag) and then open the chart definition')return}var p=new FormulaParser()var dr=p.getChartDataRange(data)if(!dr){alert('Please enter a valid chart data range (example - A1:D4)\n\nYou can close the chart definition, select the values for the chart (by mouse drag) and then open the chart definition')return}var type=document.getElementById('shui_chart_type').valuevar isnew=document.getElementById('shui_chart_new').value!=''var incols=document.getElementById('shui_tb_serc').checkedvar d3=document.getElementById('shui_tb_3d').checkedvar legend=document.getElementById('shui_tb_legend').checkedvar title=document.getElementById('shui_tb_title').valuevar event={isnew:isnew,type:type,fromRow:dr.fromRow,fromCol:dr.fromCol,toRow:dr.toRow,toCol:dr.toCol,title:title,legend:legend,d3:d3,incols:incols}if(document.getElementById('shui_tb_titlex'))event.titlex=document.getElementById('shui_tb_titlex').valueif(document.getElementById('shui_tb_titley'))event.titley=document.getElementById('shui_tb_titley').valueif(document.getElementById('shui_tb_stacked')&&document.getElementById('shui_tb_stacked').checked)event.stacked=truevar handler=SHTB_handlerSHTB_close()eval( handler(event))}function SHTB_show(pop,pos){pop.style.top=pos.top+"px"pop.style.left=pos.left+"px"pop.style.display='block'var popcls=document.getElementById("popcls")var w=popcls.offsetParent.offsetLeftif(pos.left+w>winsize.width-20){pos.left=Math.max(0,winsize.width-20-w)pop.style.left=pos.left+"px"}var popbot=document.getElementById("popbot")var h=popbot.offsetParent.offsetTopif(pos.top+h>winsize.height-10){pos.top=Math.max(0,winsize.height-10-h)pop.style.top=pos.top+"px"}var mvh=document.getElementById(SHTB_POPUP_MVID)mvh.style.top=(pos.top+1)+"px"mvh.style.left=(pos.left+1)+"px"mvh.width=wmvh.style.display='block'Drag.init(mvh,null,0,2000,0,2000)mvh.onDrag=function(x,y){var p=document.getElementById(SHTB_POPUP_ID)p.style.left=(x-1)+'px'p.style.top=(y-1)+'px'}}function SHTB_enable(btnName,enabled){var btn=document.getElementById('tb_'+btnName)var src=btn.srcvar i=src.indexOf("/tb_")var newsrc=src.substring(0,i+4)+btnName+(enabled?'':'_dis')+'.png'if(newsrc!=src)btn.src=newsrc}function sortCtl(ind,options){var c=""c+="<tr><td> <select type='text' id='sort"+ind+"'>"c+=optionsc+="</select></td><td>"c+="<input type='radio' name='sortby"+ind+"' id='sorta"+ind+"' checked='true' />Ascending<br />"c+="<input type='radio' name='sortby"+ind+"' id='sortd"+ind+"' />Descending"c+="</td></tr>"return c}function SHTB_openSort(pos,cols,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''var options="<option value='0'></option>"var nOpts=0for(var col in cols){nOpts++options+="<option value='"+cols[col].col+"'>Column "+cols[col].id+"</option>"}c+="<table border='0' cellpadding='0' cellspacing='0'>"c+="<tr><td>Sort by:</td></tr>"c+=sortCtl(0,options)if(nOpts>=2){c+="<tr><td colspan='2'><hr size='1' /></td></tr>"c+="<tr><td>Then by:</td></tr>"c+=sortCtl(1,options)}if(nOpts>=3){c+="<tr><td colspan='2'><hr size='1' /></td></tr>"c+="<tr><td>Then by:</td></tr>"c+=sortCtl(2,options)}c+="<tr height='10'><td></td></tr>"c+="<tr><td colspan='2' align='center'>"c+="<input type='button' value='OK' onclick='SHTB_handleSort()' /> "c+="<input type='button' value='Cancel' onclick='SHTB_close()' />"c+="</td></tr>"c+="</table>"var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)}function SHTB_handleSort(){var sorts=[]var error=nullfor(var i=0;i<3;i++){var sort=document.getElementById('sort'+i)if(sort){var sortc=parseInt(sort.options[sort.selectedIndex].value)var asc=document.getElementById('sorta'+i).checkedsorts[i]={by:sortc,asc:asc}if(sortc>0&&i>0&&sorts[i-1].by==0)error="Invalid sort criteria (blank column before sort column)"}else sorts[i]={by:0,asc:true}}if(error==null&&sorts[0].by==0)error="Please specify a sort column"if(error==null){if((sorts[1].by>0&&sorts[1].by==sorts[0].by)||(sorts[2].by>0&&(sorts[2].by==sorts[0].by||sorts[2].by==sorts[1].by)))error="Each column can be used only once in sort order"}if(error!=null)alert(error)else{eval( SHTB_handler(sorts))SHTB_close()}}function SHTB_openContextMenu(pos,ctxdata,handler){SHTB_handler=handlervar pop=document.getElementById(SHTB_POPUP_ID)var c=''c+='<table border="0" cellpadding="0" cellspacing="0">'c+=SHTB_menuOption('copy','Copy','copy',true)c+=SHTB_menuOption('cut','Cut','cut',true)c+=SHTB_menuOption('paste','Paste','paste',ctxdata.canPaste)c+=SHTB_menuSeperator()c+=SHTB_menuOption(null,'Copy to system clipboard','copy-del',true)c+=SHTB_menuOption(null,'Paste from system clipboard','paste-del',true)c+=SHTB_menuSeperator()c+=SHTB_menuOption('text','Format text...','text',true)c+=SHTB_menuOption('color','Format color...','color',true)c+=SHTB_menuOption('format','Format values...','format',true)if(ctxdata.type=="cells"){c+=SHTB_menuSeperator()c+=SHTB_menuOption(null,'Clear contents','clear',true)}c+=SHTB_menuSeperator()if(ctxdata.type=="cells")c+=SHTB_menuOption('sort','Sort...','sort',true)c+=SHTB_menuOption('sum','Automatic sum','sum',true)if(ctxdata.type=="cells"){c+=SHTB_menuSeperator()c+=SHTB_menuOption('pie','Add a pie chart','pie',true)c+=SHTB_menuOption('column','Add a columns chart','columns',true)c+=SHTB_menuOption('bar','Add a bars chart','bars',true)c+=SHTB_menuOption('line','Add a line chart','line',true)}if(ctxdata.stocks){c+=SHTB_menuSeperator()for(var i=0;i<ctxdata.stocks.length;i++)c+=SHTB_menuOption(null,'Open Yahoo finance for "'+ctxdata.stocks[i]+'" (popup window)','stock-'+ctxdata.stocks[i],true)}if(ctxdata.link){c+=SHTB_menuSeperator()c+=SHTB_menuOption(null,'Open link (popup window)','link',true)}c+='</table>'var popBody=document.getElementById(SHTB_POPUP_BODY_ID)popBody.innerHTML=cSHTB_show(pop,pos)}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -