이번에 엑셀에 접근해서 값을 set하고, 계산하고 다시 그값을 가져와 DB 저장하는 프로젝트를 하고 있다.
값을 set하는거야 이전에도 여러번 해봐서 별로 어렵지 않았는데,
수식 재계산하고 반영하고 그값 가져오는 것 때문에 삽질을 여러번 한 것 같다.
//Excel open
Workbook wb = WorkbookFactory.create(in);
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
wb.setForceFormulaRecalculation(true);
//cell 접근
CellReference cellReference = new CellReference(cellPstn);
Row row = wb.getSheet(sheetName).getRow(cellReference.getRow());
Cell cell = row.getCell(cellReference.getCol());
//value setting
BigDecimal value = new BigDecimal((String)map.get(columnName));
cell.setCellValue(value.doubleValue());
//excel calculation
evaluator.evaluateInCell(cell);
CellValue cellValue = evaluator.evaluate(cell);
위와같이 생각보다 쉽게 진행 되었다.
Cell 전체를 모두 재계산 하는것이 아니라 어떤Cell 만 재계산 하는지 미리 알고 있기 때문에 편하게 진행 할 수 있다.
링크 참조 : http://poi.apache.org/components/spreadsheet/eval.html
'개발 > Framework || Lib' 카테고리의 다른 글
블록체인 애플리케이션 개발의 새로운 패러다임 (4) | 2024.10.29 |
---|---|
Apache Kafka (0) | 2024.10.29 |
jackcess 사용하기 (JAVA) (0) | 2018.12.05 |
IBATIS RESUTL 에러 (0) | 2010.07.07 |
Oracle cursor 접근 방법 (0) | 2009.10.07 |
댓글