엑셀 다운로드 작업을 하다보니 드롭박스 기능을 작업해야할 일이 생겼고, 구글링 을 하며 무수한 시도끝에 최종 적용한 방법이다..
기존 엑셀 다운로드 코드 내 아래 코드를 추가해 주면 된다.
현재는 xls 에서만 동작 하고 xlsx 에서는 정상적으로 동작 하는지 여부는 조금더 파악을 해보아야 겠다.
//드록박스 시작
String[] strFormula = null;
CellRangeAddressList addressList = null;
DVConstraint constraing = null;
HSSFDataValidation dataValidation = null;
strFormula = new String[] { "100", "200", "300", "400", "500" };
addressList = new CellRangeAddressList();
//순서대로 int firstRow, int firstCol, int lastRow, int lastCol
addressList.addCellRangeAddress(1, 0, 1000, 0);
constraing = DVConstraint.createExplicitListConstraint(strFormula);
dataValidation = new HSSFDataValidation(addressList, constraing);
//공백무시 옵션 true : 무시, false: 무시안함
dataValidation.setEmptyCellAllowed(false);
//cell 선택시 설명메시지 보이기 옵션 true: 표시, false : 표시안함
dataValidation.setShowPromptBox(true);
//cell 선택시 드롭다운박스 list 표시여부 설정 true : 안보이게, false : 보이게
dataValidation.setSuppressDropDownArrow(false);
//오류메시지 생성. 형식에 맞지 않는 데이터 입력시 createErrorBox(String title,String text)
dataValidation.createErrorBox("알림", "입력값이 바르지 않습니다. 지정된 값만 입력해 주세요.");
sheet.addValidationData(dataValidation);
/*오류메시지 스타일(중지,경보,정보).
HSSFDataValidation.ErrorStyle.STOP : 데이터외의값 허용안함.
HSSFDataValidation.ErrorStyle.WARNING : 데이터외의값 입력시 경고(선택)창.
HSSFDataValidation.ErrorStyle.INFO : 데이터외의값 입력시 정보창.*/
dataValidation.setErrorStyle(HSSFDataValidation.ErrorStyle.STOP);
'개발 > BackEnd' 카테고리의 다른 글
내가 보려고 쓰는 페이징유틸(PagingUtil) (1) | 2023.12.27 |
---|---|
XSSFDrawing 사용 엑셀 메모박스 만들기 (0) | 2023.04.28 |
트랜잭션(Transaction)처리 하기 (0) | 2022.01.26 |
The maximum column width for an individual cell is 255 characters. 엑셀 다운로드시 Error (0) | 2021.10.01 |