apache-poi
एनपीओआई: एक्सएसएसएफ (.xslx) एक्सेल फ़ाइल के लिए दिनांक, समय, सूची आइटम, ईमेल आदि के लिए डेटा सत्यापन बाधा दृष्टिकोण c # का उपयोग कर
खोज…
परिचय
डेटा सत्यापन बाधा बनाना मुश्किल और NPOI में समय लग सकता है। मैंने अपने कुछ व्यावहारिक दृष्टिकोण साझा किए हैं। ये दृष्टिकोण आपके स्वयं के बाधा प्रकारों को अनुकूलित करने के लिए अच्छा विचार देगा।
दिनांक फ़ील्ड मान के लिए दिनांक अवरोधों को दिनांक 01/01/1900 से 12/31/2119 के बीच दिनांक स्वरूप मिमी / dd // yyyyy के साथ सेट करें;
int DVRowLimit = (Int16.MaxValue);
CellRangeAddressList cellRangeFieldsType1 = new CellRangeAddressList(1, DVRowLimit, targetFirstCol, targetLastCol);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateDateConstraint(OperatorType.BETWEEN, "=DATE(1900,1,1)", "=DATE(2119,12,31)", "mm/dd/yyyyy");
//dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateDateConstraint(OperatorType.IGNORED, "", "", "m/d/yy h:mm");
XSSFDataValidation dataValidation = (XSSFDataValidation)validationHelper.CreateValidation(dvConstraint, cellRangeFieldsType1);
dataValidation.ShowErrorBox = true;
dataValidation.ErrorStyle = 0;
dataValidation.CreateErrorBox("InvalidDate", "Allowed Format is MM/DD/YYYY");
dataValidation.ShowErrorBox = true;
dataValidation.CreatePromptBox("Date Data Validation", "Enter Date in Format MM/DD/YYYY.");
dataValidation.ShowPromptBox = true;
sheet.AddValidationData(dataValidation);
दिनांक मान HH के साथ 00:00 से 23:59 के बीच फ़ील्ड मान के लिए समय की बाधाएँ सेट करें: MM;
dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateTimeConstraint(OperatorType.BETWEEN, "=TIME(0,0,0)", "=TIME(23,59,59)");
एक सूची आइटम बनाएं बाधा
dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateExplicitListConstraint(new string[] { "MON", "TUE" , "WED", "THU", "FRI"});
फोन नंबर की कमी
// "$ #, ###। 00" और दिनांक "m / d / yy:" जैसे प्रारूप के साथ मुद्रा प्रकारों के लिए समान दृष्टिकोण का प्रयास करें।
XSSFFont defaultFont = (XSSFFont)workbook.CreateFont();
defaultFont.FontHeightInPoints = (short)10;
defaultFont.FontName = "Arial";
XSSFCellStyle phoneCellStyle = (XSSFCellStyle)workbook.CreateCellStyle();
XSSFDataFormat phoneDataFormat = (XSSFDataFormat)workbook.CreateDataFormat();
phoneCellStyle.SetDataFormat(phoneDataFormat.GetFormat("000-000-0000"));
phoneCellStyle.FillBackgroundColor = IndexedColors.LightYellow.Index;
dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateintConstraint(OperatorType.BETWEEN, "1000000000", "9999999999");
sheet.AddValidationData(dataValidation);
sheet.SetDefaultColumnStyle(headerCount, phoneCellStyle);
ईमेल कॉलम के लिए ईमेल एड्रेस की कमी
string emailValidationFormula = GetEmailValidationFormula(targetFirstCol);
CellRangeAddressList cellRangeFieldsType5 = new CellRangeAddressList(1, DVRowLimit, targetFirstCol, targetLastCol);
dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateCustomConstraint(emailValidationFormula)
// ईमेल पता सत्यापन पैटर्न प्राप्त करें निजी स्ट्रिंग GetEmailValidationFormula (int targetColumn) {
int div = headerCount + 1;
string colLetter = String.Empty;
int mod = 0;
try
{
while (div > 0)
{
mod = (div - 1) % 26;
colLetter = (char)(65 + mod) + colLetter;
div = (int)((div - mod) / 26);
}
}
catch (Exception Ex)
{
logger.Error("Error ", Ex);
}
return "=AND(FIND(\"@\"," + colLetter + "2),FIND(\".\"," + colLetter + "2),ISERROR(FIND(\" \"," + colLetter + "2)))";
}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow