Esempio n. 1
0
        //根据当前选择点,判断选择区域
        public void setSelectedNamed()
        {
            if (app == null)
            {
                app       = new XApp(this.spreadsheetMain.Document, null);
                app.statu = SysStatu.SheetError;
            }
            AreasCollection areas = spreadsheetMain.Selection.Areas;

            /*if (currentXRange != null && RangeUtil.isInRange(areas, currentXRange.getRange()) < 0)
             * {
             *  this.currentXRange = null;
             * }*/
            this.currentXRange = null;
            rightClickBarManager.SetPopupContextMenu(spreadsheetMain, null);
            if (currentSheet != null && currentSheet.sheetName == "Config")
            {
                IList <Table> tables = spreadsheetMain.ActiveWorksheet.Tables.GetTables(spreadsheetMain.ActiveCell);
                if (tables.Count > 0 && tables[0].Name == "CFG_DATA")
                {
                    if (RangeUtil.isInRange(areas, tables[0].DataRange) >= 0)
                    {
                        rightClickBarManager.SetPopupContextMenu(spreadsheetMain, menus["CfgData"]);
                    }
                }
            }
            else if ((int)app.statu > 0)
            {
                XRSheet opSheet = app.getRSheetByName(spreadsheetMain.ActiveWorksheet.Name);
                //遍历当前Sheet全部命名区域,依次判断是否在区域范围内
                if (opSheet != null)
                {
                    foreach (var dicname in opSheet.ranges)
                    {
                        XRange xname = dicname.Value;
                        int    i     = xname.isInRange(areas);
                        if (i >= 0)
                        {
                            this.currentXRange = xname;
                            rightClickBarManager.SetPopupContextMenu(spreadsheetMain, menus["Normal"]);
                            //当选择点为命名区域时,将当前坐标写入单元格
                            //this.currentXRange.onMouseDown();
                            break;//如果判断到第一个区域,将该区域存储为currentXRange,退出循环判断
                        }
                    }
                }
                else
                {
                    currentXRange = null;
                }
            }
        }
Esempio n. 2
0
        public override int isInRange(Range range)
        {
            AreasCollection areas = getRange().Areas;

            foreach (Range irange in areas)
            {
                if (RangeUtil.isInRange(range, irange) > 0)
                {
                    return(1);
                }
            }
            return(-1);
        }
Esempio n. 3
0
 //1:参数区域在本区域内;2:参数区域在本区域内,但包含表头;-1参数区域不在本区域内
 //range为鼠标选择区域
 public override int isInRange(Range range)
 {
     return(RangeUtil.isInRange(range, this.getRange()));
 }