use of com.kyj.fx.voeditor.visual.exceptions.GargoyleFileAlreadyExistException in project Gargoyle by callakrsos.
the class VoEditorController method btnExcelExportOnMouseClick.
/**
* 엑셀 export
*
* @param e
*/
@FXML
public void btnExcelExportOnMouseClick(MouseEvent e) {
File saveFile = DialogUtil.showFileSaveCheckDialog(SharedMemory.getPrimaryStage(), new Consumer<FileChooser>() {
@Override
public void accept(FileChooser choser) {
String fileName = txtClassName.getText();
File dir = SystemUtils.getUserDir();
choser.setInitialFileName(fileName);
choser.setInitialDirectory(dir);
choser.getExtensionFilters().add(new ExtensionFilter(GargoyleExtensionFilters.XLSX_NAME, GargoyleExtensionFilters.XLSX));
}
});
boolean isSuccess = false;
if (saveFile != null) {
try {
File createExcelFile = VoWizardUtil.createExcelFile(saveFile.getParentFile(), saveFile.getName(), tbVoEditor.getItems(), true);
if (createExcelFile != null && createExcelFile.exists()) {
isSuccess = true;
}
} catch (GargoyleFileAlreadyExistException e1) {
ValueUtil.toString(e1);
DialogUtil.showExceptionDailog(e1);
return;
}
}
if (isSuccess) {
if (chkWriteThenOpen.isSelected()) {
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().open(saveFile);
} catch (IOException e1) {
DialogUtil.showExceptionDailog(e1);
}
}
}
}
}
use of com.kyj.fx.voeditor.visual.exceptions.GargoyleFileAlreadyExistException in project Gargoyle by callakrsos.
the class VoWizardUtil method createExcelFile.
/**
* 엑셀파일생성
*
* @param pathDir
* @param _fileName
* @param models
* @return 생성된 엑셀파일에 대한 파일 객체
* @throws GargoyleFileAlreadyExistException
*/
public static File createExcelFile(File pathDir, String _fileName, List<TableModelDVO> models, boolean isOverWrite) throws GargoyleFileAlreadyExistException {
File saveFile = null;
if (!pathDir.exists() || !pathDir.isDirectory())
return saveFile;
String fileName = _fileName;
String createFilePathName = pathDir.getAbsolutePath() + File.separator + fileName;
if (!_fileName.endsWith(".xlsx")) {
createFilePathName.concat(".xlsx");
}
saveFile = new File(createFilePathName);
if (saveFile.exists() && !isOverWrite) {
throw new GargoyleFileAlreadyExistException("already exists. file");
}
// 로우번호 채번링
AtomicInteger atomicInteger = new AtomicInteger(2);
List<ExcelDataDVO> collect = models.stream().map(vo -> {
List<ExcelDataDVO> list = new ArrayList<ExcelDataDVO>();
String columnName = vo.getDatabaseColumnName();
String dataType = vo.getType();
String dataSize = vo.getSize();
String desc = vo.getDesc();
int row = atomicInteger.getAndIncrement();
list.add(new ExcelDataDVO(row, 0, ValueUtil.toCamelCase(ValueUtil.decode(columnName, columnName, vo.getName()).toString())));
list.add(new ExcelDataDVO(row, 1, dataType));
list.add(new ExcelDataDVO(row, 2, dataSize));
list.add(new ExcelDataDVO(row, 3, desc));
return list;
}).collect(() -> {
/* 컬럼헤더처리 */
ArrayList<ExcelDataDVO> arrayList = new ArrayList<ExcelDataDVO>();
arrayList.add(new ExcelDataDVO(1, 0, VoWizardUtil.COLUMN_NAME, /* "컬럼명" */
Color.GREEN));
arrayList.add(new ExcelDataDVO(1, 1, VoWizardUtil.TYPE, /* "데이터타입" */
Color.GREEN));
arrayList.add(new ExcelDataDVO(1, 2, VoWizardUtil.DATA_LENGTH, /* "데이터사이즈" */
Color.GREEN));
arrayList.add(new ExcelDataDVO(1, 3, VoWizardUtil.COMMENTS, /* "설명" */
Color.GREEN));
return arrayList;
}, (t, u) -> t.addAll(u), (t, u) -> t.addAll(u));
ExcelSVO svo = new ExcelSVO();
svo.addSheetExcelDVO(SHEET_NAME, collect);
try {
ExcelUtil.createExcel(saveFile.getAbsolutePath(), svo, false);
} catch (Exception e1) {
ValueUtil.toString(e1);
saveFile = null;
}
return saveFile;
}
Aggregations