private XSSFDataValidation CreateValidation(XSSFSheet sheet)
        {
            //create the cell that will have the validation applied
            IRow row = sheet.CreateRow(0);

            row.CreateCell(0);

            IDataValidationHelper dataValidationHelper = sheet.GetDataValidationHelper();

            IDataValidationConstraint constraint = dataValidationHelper.CreateCustomConstraint("true");
            XSSFDataValidation        validation = (XSSFDataValidation)dataValidationHelper.CreateValidation(constraint, new CellRangeAddressList(0, 0, 0, 0));

            return(validation);
        }
        public void TestDefaultAllowBlank()
        {
            XSSFWorkbook wb = new XSSFWorkbook();

            try
            {
                XSSFSheet sheet = wb.CreateSheet() as XSSFSheet;

                XSSFDataValidation validation = CreateValidation(sheet);
                sheet.AddValidationData(validation);

                List <IDataValidation> dataValidations = sheet.GetDataValidations();
                Assert.AreEqual(true, (dataValidations[0] as XSSFDataValidation).GetCTDataValidation().allowBlank);
            }
            finally
            {
                wb.Close();
            }
        }
Beispiel #3
0
        //YK: GetXYZArray() array accessors are deprecated in xmlbeans with JDK 1.5 support
        public List<XSSFDataValidation> GetDataValidations()
        {
            List<XSSFDataValidation> xssfValidations = new List<XSSFDataValidation>();
            CT_DataValidations dataValidations = this.worksheet.dataValidations;
            if (dataValidations != null && dataValidations.count > 0)
            {
                foreach (CT_DataValidation ctDataValidation in dataValidations.dataValidation)
                {
                    CellRangeAddressList addressList = new CellRangeAddressList();


                    List<String> sqref = ctDataValidation.sqref;
                    foreach (String stRef in sqref)
                    {
                        String[] regions = stRef.Split(new char[] { ' ' });
                        for (int i = 0; i < regions.Length; i++)
                        {
                            String[] parts = regions[i].Split(new char[] { ':' });
                            CellReference begin = new CellReference(parts[0]);
                            CellReference end = parts.Length > 1 ? new CellReference(parts[1]) : begin;
                            CellRangeAddress cellRangeAddress = new CellRangeAddress(begin.Row, end.Row, begin.Col, end.Col);
                            addressList.AddCellRangeAddress(cellRangeAddress);
                        }
                    }
                    XSSFDataValidation xssfDataValidation = new XSSFDataValidation(addressList, ctDataValidation);
                    xssfValidations.Add(xssfDataValidation);
                }
            }
            return xssfValidations;
        }