POI Excel 생성, 드롭다운 목록 정보(유효성)
2425 단어 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Excel Grep toolExcel Grep tool ■히나가타 ■ 시트 구성 ExcelGrep.cls...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.