POI Excel 생성, 드롭다운 목록 정보(유효성)

2425 단어 Excel
POI는 Excel을 생성하고 드롭다운 목록(유효성) 즉 Excel의 유효성 시퀀스를 생성합니다. 값은 쉼표로 구분할 수 있지만 길이는 제한됩니다.구체적인 방법:
CellRangeAddressList rl = new CellRangeAddressList();

String[] list = {"aa","bb"};

CellRangeAddress address = new CellRangeAddress(flist.getFirstRow, lastRow, firstColumn, lastColumn);

rl.addCellRangeAddress(address);

DataValidation validation = null;

if (version == ExcelVersion.VERSION_2007) {

  XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet) sheet);

  DataValidationConstraint constraint = helper.createExplicitListConstraint(list.getList());

  validation = helper.createValidation(constraint, rl);

} else {

  DVConstraint constraint = DVConstraint.createExplicitListConstraint();

  validation = new HSSFDataValidation(rl, constraint);

}

validation.setEmptyCellAllowed(false);

//  

validation.setShowErrorBox(true);

validation.setErrorStyle(DataValidation.ErrorStyle.STOP);

sheet.addValidationData(validation);

이런 것은 제한이 있는데, 수조의 길이 바이트수.이것은 Excel이 표현식의 길이에 대한 제한 때문이다.
그래서 다른 방법을 생각해 보니 수조를 Excel에 출력한 다음에 표현식으로 이 수조들을 꺼내라. 예를 들어 $A$0: $A$10, 이렇게 하면 표현식이 매우 짧아진다.
구체적인 표현식의 계산은 스스로 조립하지 않아도 되고, Cell Range Address 종류는 완성할 수 있다.
창설 방법은 위와 다르다. 사고방식은 모두 같다. 코드는 다음과 같다.
if (version == ExcelVersion.VERSION_2007) {

  XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet) sheet);

  DataValidationConstraint constraint = helper.createFormulaListConstraint(formula);

  validation = helper.createValidation(constraint, rl);

} else {

  DVConstraint constraint = DVConstraint.createFormulaListConstraint(formula);

  validation = new HSSFDataValidation(rl, constraint);

}

이런 느낌은 아직 좋지 않다. 같은 Sheet에서 Excel에서는 Sheet를 뛰어넘을 수 있다. 이 표현은 약간의 수정을 해야 한다. 예를 들어 INDIRECT ("sheet Name! $A$0: $A$10") 같은 함수로 수정하면 된다.
POI 3.8 이전에는 스스로 맞추어야 한다. POI 3.8부터 Cell Range Address의 String format AssString(String sheetName, boolean use Absolute Address)이 가능하다.
이것들은 2003, 2007에 대해 모두 가능하며, 2007의 강좌는 인터넷에서 비교적 적다.
2003 홈페이지 자습서:http://poi.apache.org/spreadsheet/quick-guide.html#Validation

좋은 웹페이지 즐겨찾기