var headerCount=4;//头部行高,第4行是总计 var totalRowIndex=headerCount-1; var nextDataRowIndex=headerCount;//下条数据所在行 var bgColor1='rgb(255,238,183)';//市场 var bgColor2='rgb(214,206,242)';//运营 var bgColor3='rgb(189,215,238)';//人资 var bgColor4='rgb(255,201,201)';//采购 var openPostNumColArray=[]; var totoalAmountColIndex=4; $(function () { spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 1}); initSpread(); initStatusBar(spread); initStatusBarEvents(spread); top.spread=spread; }); function initSpread() { spread.suspendPaint(); var sheet ; if (dbJson) {//数据库 spread.fromJSON(dbJson); sheet=spread.getActiveSheet(); var setting = sheet.tag(); if(setting){ if(setting.nextDataRowIndex){ nextDataRowIndex = setting.nextDataRowIndex; } if(setting.openPostNumColArray){ openPostNumColArray= setting.openPostNumColArray; } } addCostomFunction(sheet); //解决合并后 维度公式背景色问题 /* loopAll(sheet,function(row,col){ var cellTag = sheet.getTag(row,col); if(cellTag && cellTag.functionId){ sheet.getCell(row,col).backColor('yellow'); } });*/ } else { spread.fromJSON(cost_breakdown_header); sheet=spread.getActiveSheet(); sheet.clearSelection(); var title = sheet.getValue(0,0); title= title.replace(/\$periodYear/g,periodYear); sheet.setValue(0,0,title); sheet.getRange(0,-1).visible(false);//第一行隐藏 sheet.showColumn(0, GC.Spread.Sheets.HorizontalPosition.left); addCostomFunction(sheet); setTotalRow(sheet); addContractInfo(sheet); } sheet.frozenRowCount(headerCount); sheet.frozenColumnCount(3); spread.options.newTabVisible = false;//取消新增sheet按钮 spread.options.allowExtendPasteRange = true;//扩展粘贴区域 spread.options.allowCopyPasteExcelStyle = false removeMenu(sheet); addDimFunctionMenu(spread); bindEvent(spread); setDefaultLock(sheet); spread.resumePaint(); } function bindEvent(spread) { spread.bind(GC.Spread.Sheets.Events.ValueChanged, function (e, info) { var sheet=info.sheet; var row = info.row; var col=info.col; if(col==totoalAmountColIndex){//金额列被修改 ,同时改变隐藏列 sheet.setValue(row,col-1,info.newValue); } }); spread.bind(GC.Spread.Sheets.Events.RowChanging, function (e, info) { //info.propertyName="deleteRows" //删除行 if(info.propertyName="deleteRows"){ var deleteRow = info.row; var deleteCount = info.count; var sheet=info.sheet; var sheetTag = sheet.tag(); var ids = sheetTag.ids; for(var i=deleteRow;iheaderCount) nextDataRowIndex--; var rowTag = sheet.getTag(i,-1); if(!rowTag) continue; for(var j=0;j=sheetRowCount-1){ sheet.addRows(sheetRowCount-1,1) } var rowSetting={};//行变量 var col=0; var id = one.id; var entityName = one.entityName; var contractDate = one.contractDate; var contractTotalAmount = one.contractTotalAmount; var entityCellInfo = {entityId:id,entityName:entityName}; var yunyingCostMoneyArrayCol=[];//运营费业务配置 var shichangCostMoneyArrayCol=[];//市场费业务配置 var leftBorderThickArray=[];//做边框加重数组 var costLimitCol; var cellStr; //序号 sheet.setFormula(row, col, "row()-"+headerCount); sheet.getCell(row,col).backColor(bgColor1); col++; //名称 sheet.getCell(row,col).backColor(bgColor1); sheet.setValue(row, col, entityName); col++; //合同起止日期 sheet.getCell(row,col).backColor(bgColor1); sheet.setValue(row, col, contractDate); bindCellInfo(sheet,row,col,entityCellInfo,dataIndex,true); col++; //合同金额统计隐藏 if(dataIndex==0){ sheet.addColumns(col,1); cellStr = getCellStr(sheet,row,col); cellStr=cellStr.substring(0,cellStr.lastIndexOf('$')); sheet.setFormula(row-1,col+1,"sum("+cellStr+":"+cellStr+")"); sheet.getRange(-1,col).visible(false); } bindCellInfo(sheet,row,col,entityCellInfo,dataIndex,true); col++; //合同额 sheet.getCell(row,col).backColor(bgColor1); sheet.setValue(row, col, contractTotalAmount); bindCellInfo(sheet,row,col,entityCellInfo,dataIndex,true); if(contractTotalAmount){ var contractTotalAmountArray = contractTotalAmount.split(','); var contractTotalAmountNum=0; for(var i=0;i