示例#1
0
        public void TestReferenceParse()
        {
            String reference = "Sheet2!$A$1:$C$3";
            RangeAddress ra = new RangeAddress(reference);

            Assert.AreEqual("Sheet2!A1:C3", ra.Address);

        }
示例#2
0
        /** Sets the reference , the area only (range)
         * @param ref1 area reference
         */
        public void SetAreaReference(String ref1){
        //Trying to Find if what ptg do we need
        RangeAddress ra = new RangeAddress(ref1);
        Ptg oldPtg;

        if (field_13_name_definition.Length < 1)
        {
            oldPtg = CreateNewPtg();
        }
        else
        {
            //Trying to find extern sheet index
            oldPtg = field_13_name_definition[0];
        }

        int externSheetIndex = 0;

        if (oldPtg.GetType() == typeof(Area3DPtg)){
            externSheetIndex =  ((Area3DPtg) oldPtg).ExternSheetIndex;

        } else if (oldPtg.GetType() == typeof(Ref3DPtg)){
            externSheetIndex =  ((Ref3DPtg) oldPtg).ExternSheetIndex;
        }
        ArrayList temp = new ArrayList();
        if (ra.HasRange) {
        	// Is it contiguous or not?
        	AreaReference[] refs = 
        		AreaReference.GenerateContiguous(ref1);

            // Add the area reference(s) 
        	for(int i=0; i<refs.Length; i++) {
                Ptg ptg1 = new Area3DPtg(refs[i].FormatAsString(), externSheetIndex);
                temp.Add(ptg1);
        	}
        	// And then a Union if we had more than one area
        	if(refs.Length > 1) {
                Ptg ptg = UnionPtg.instance;
                temp.Add(ptg);
        	}
        } else {
            Ref3DPtg ptg = new Ref3DPtg(ra.FromCell, externSheetIndex);
            temp.Add(ptg);
        }
        Ptg[] ptgs = new Ptg[temp.Count];
        ptgs=(Ptg[])temp.ToArray(typeof(Ptg));
        field_13_name_definition = ptgs;
    }