public void TestReferenceParse() { String reference = "Sheet2!$A$1:$C$3"; RangeAddress ra = new RangeAddress(reference); Assert.AreEqual("Sheet2!A1:C3", ra.Address); }
/** 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; }