2013-06-20 88 views
1

創建使用NPOI使用下面的代碼如何使用NPOI

  var workbook = new HSSFWorkbook(); 
      var sheet = workbook.CreateSheet("Candidate"); 

      // Add header labels 
      var rowIndex = 0; 
      var row = sheet.CreateRow(rowIndex); 
      row.CreateCell(0).SetCellValue("Name"); 
      row.CreateCell(1).SetCellValue("1,2,3"); 
      row.CreateCell(2).SetCellValue("4,5,6"); 
      row.CreateCell(3).SetCellValue("7,8,9"); 
      rowIndex++; 


      // Add data rows 
      for (int i = 1; i <= 5; i++) 
      { 
       row = sheet.CreateRow(rowIndex); 
       row.CreateCell(0).SetCellValue("Candidate" + i.ToString()); 
       row.CreateCell(1).SetCellValue(""); 
       row.CreateCell(2).SetCellValue(""); 
       row.CreateCell(3).SetCellValue(""); 
       rowIndex++; 
      } 

我只是想補充一些驗證在每個小區我已經創建了一個EXCELL文件在Excel單元格設置驗證。 對於例如:restrict cell 2 with inputs only 1,2,3

Excel we can Set Data Validationwhole number並能specify Min and Max Value

任何想法實現這一點將是一個很大的幫助。

回答

0

我發現這一點,並與以下代碼大大合作。

var markConstraint = DVConstraint.CreateExplicitListConstraint(new string[]{"1","2","3"}); 
    var markColumn = new CellRangeAddressList(1, 5, 1, 1); 
    var markdv = new HSSFDataValidation(markColumn, markConstraint); 
    markdv.EmptyCellAllowed = true; 
    markdv.CreateErrorBox("Wrong Value", "Please Enter a correct value"); 
    sheet.AddValidationData(markdv); 
0

試試這個例子

XSSFDataValidation dataValidation = null; 
XSSFDataValidationConstraint dvConstraint = null; 
XSSFDataValidationHelper validationHelper = null; 

int DVRowLimit = (Int16.MaxValue); 
XSSFCellStyle numberCellStyle = (XSSFCellStyle)workbook.CreateCellStyle(); 
XSSFDataFormat numberDataFormat = (XSSFDataFormat)workbook.CreateDataFormat(); 
numberCellStyle.SetDataFormat(numberDataFormat.GetFormat("#,###,###")); 


CellRangeAddressList cellRangeFieldsType1 = new CellRangeAddressList(1, DVRowLimit, headerCount, headerCount); 
dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateintConstraint(OperatorType.BETWEEN, "0", Int64.MaxValue.ToString()); 
dataValidation = (XSSFDataValidation)validationHelper.CreateValidation(dvConstraint, cellRangeFieldsType1); 
dataValidation.ShowErrorBox = true; 
dataValidation.SuppressDropDownArrow = true; 
dataValidation.ErrorStyle = 0; 
dataValidation.CreateErrorBox("InvalidValue", "Number Should be a integer."); 
dataValidation.ShowErrorBox = true; 
dataValidation.CreatePromptBox("Number Data Validation", "Enter Number."); 
dataValidation.ShowPromptBox = true; 
sheet.AddValidationData(dataValidation); 
sheet.SetDefaultColumnStyle(column, numberCellStyle); 

同樣的範圍驗證嘗試

dvConstraint = (XSSFDataValidationConstraint)validationHelper.CreateintConstraint(OperatorType.BETWEEN, "0", "10"); 

我已經鞏固類似的例子成NPOI一個文檔。它涵蓋了各種類型的數據驗證和約束。文檔還包括約束的總字符數超過255個字符的情況。