/* * Copyright 2008-2009 MOPAS(Ministry of Public Administration and Security). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package egovframework.rte.fdl.excel.impl; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Locale; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.MessageSource; import com.ibatis.sqlmap.client.SqlMapClient; import egovframework.rte.fdl.cmmn.exception.BaseException; import egovframework.rte.fdl.excel.EgovExcelMapping; import egovframework.rte.fdl.excel.EgovExcelService; import egovframework.rte.fdl.excel.EgovExcelXSSFMapping; import egovframework.rte.fdl.filehandling.EgovFileUtil; import egovframework.rte.fdl.string.EgovObjectUtil; /** * 엑셀 서비스를 처리하는 비즈니스 구현 클래스 * <p> * <b>NOTE:</b> 엑셀 서비스를 제공하기 위해 구현한 클래스이다. * @author 실행환경 개발팀 윤성종 * @since 2009.06.01 * @version 1.0 * @see <pre> * == 개정이력(Modification Information) == * * 수정일 수정자 수정내용 * ----------- -------- --------------------------- * 2009.06.01 윤성종 최초 생성 * 2013.05.22 이기하 XSSF, SXSSF형식 추가(xlsx 지원) * 2013.05.29 한성곤 mapBeanName property 추가 및 코드 정리 * * </pre> */ public class EgovExcelServiceImpl implements EgovExcelService, ApplicationContextAware { private EgovExcelServiceDAO dao; protected Log log = LogFactory.getLog(this.getClass()); private MessageSource messageSource; private ApplicationContext applicationContext; private String mapClass; private String mapBeanName; private SqlMapClient sqlMapClient; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; this.messageSource = (MessageSource) applicationContext.getBean("messageSource"); } /** * @return the messageSource */ protected MessageSource getMessageSource() { return messageSource; } public void setSqlMapClient(SqlMapClient sqlMapClient) throws Exception { this.sqlMapClient = sqlMapClient; dao = new EgovExcelServiceDAO(this.sqlMapClient); } /** * Excel Cell과 VO를 mapping 구현 클래스 * * @param mapClass * @throws Exception */ public void setMapClass(String mapClass) throws BaseException { this.mapClass = mapClass; log.debug("mapClass : " + mapClass); } /** * Excel Cell과 VO를 mapping 구현 Bean name (mapClass보다 우선함) * * @param mapBeanName * @throws BaseException */ public void setMapBeanName(String mapBeanName) throws BaseException { this.mapBeanName = mapBeanName; log.debug("mapBeanName : " + mapBeanName); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#loadExcelTemplate(java.lang.String) */ public HSSFWorkbook loadExcelTemplate(String templateName) throws BaseException, FileNotFoundException, IOException { FileInputStream fileIn = new FileInputStream(templateName); HSSFWorkbook wb = null; log.debug("EgovExcelServiceImpl.loadExcelTemplate : templatePath is " + templateName); try { log.debug("ExcelServiceImpl loadExcelTemplate ..."); POIFSFileSystem fs = new POIFSFileSystem(fileIn); wb = new HSSFWorkbook(fs); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] {"EgovExcelServiceImpl loadExcelTemplate" }, Locale.getDefault()), e); } finally { log.debug("ExcelServiceImpl loadExcelTemplate end..."); fileIn.close(); } return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#loadXSSFExcelTemplate(java.lang.String) */ public XSSFWorkbook loadXSSFExcelTemplate(String templateName) throws BaseException, FileNotFoundException, IOException { FileInputStream fileIn = new FileInputStream(templateName); XSSFWorkbook wb = null; log.debug("EgovExcelServiceImpl.loadXSSFExcelTemplate : templatePath is " + templateName); try { log.debug("ExcelServiceImpl loadXSSFExcelTemplate ..."); wb = new XSSFWorkbook(fileIn); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] {"EgovExcelServiceImpl loadXSSFExcelTemplate" }, Locale.getDefault()), e); } finally { log.debug("ExcelServiceImpl loadXSSFExcelTemplate end..."); fileIn.close(); } return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#loadWorkbook(java.lang.String) */ public HSSFWorkbook loadWorkbook(String filepath) throws BaseException, FileNotFoundException, IOException { FileInputStream fileIn = new FileInputStream(filepath); HSSFWorkbook wb = loadWorkbook(fileIn); fileIn.close(); return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#loadXSSFWorkbook(java.lang.String) */ public XSSFWorkbook loadXSSFWorkbook(String filepath) throws BaseException, FileNotFoundException, IOException { FileInputStream fileIn = new FileInputStream(filepath); XSSFWorkbook wb = loadXSSFWorkbook(fileIn); fileIn.close(); return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#loadWorkbook(java.io.InputStream) */ public HSSFWorkbook loadWorkbook(InputStream fileIn) throws BaseException { HSSFWorkbook wb = new HSSFWorkbook(); try { log.debug("ExcelServiceImpl loadWorkbook ..."); POIFSFileSystem fs = new POIFSFileSystem(fileIn); wb = new HSSFWorkbook(fs); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] {"loadWorkbook" }, Locale.getDefault()), e); } return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#loadXSSFWorkbook(java.io.InputStream) */ public XSSFWorkbook loadXSSFWorkbook(InputStream fileIn) throws BaseException { XSSFWorkbook wb = new XSSFWorkbook(); try { log.debug("ExcelServiceImpl loadXSSFWorkbook ..."); wb = new XSSFWorkbook(fileIn); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] {"loadXSSFWorkbook" }, Locale.getDefault()), e); } return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#writeWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) */ public void writeWorkbook(HSSFWorkbook workbook) throws BaseException, IOException { workbook.write(null); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#writeWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) */ public void writeXSSFWorkbook(XSSFWorkbook workbook) throws BaseException, IOException { workbook.write(null); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#writeWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook) */ public void writeSXSSFWorkbook(SXSSFWorkbook workbook) throws BaseException, IOException { workbook.write(null); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#createWorkbook(org.apache.poi.hssf.usermodel.HSSFWorkbook, java.lang.String) */ public HSSFWorkbook createWorkbook(HSSFWorkbook wb, String filepath) throws BaseException, FileNotFoundException, IOException { String fullFileName = filepath; log.debug("EgovExcelServiceImpl.createWorkbook : templatePath is " + FilenameUtils.getFullPath(fullFileName)); // 작업 디렉토리 생성 if (!EgovFileUtil.isExistsFile(FilenameUtils.getFullPath(fullFileName))) { log.debug("make dir " + FilenameUtils.getFullPath(fullFileName)); try { FileUtils.forceMkdir(new File(FilenameUtils.getFullPath(fullFileName))); } catch (IOException e) { throw new IOException("Cannot create directory for path: " + FilenameUtils.getFullPath(fullFileName)); } } FileOutputStream fileOut = new FileOutputStream(fullFileName); log.debug("EgovExcelServiceImpl.createWorkbook : templatePath is " + fullFileName); try { log.debug("ExcelServiceImpl loadExcelObject ..."); wb.write(fileOut); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] {"createWorkbook" }, Locale.getDefault()), e); } finally { log.debug("ExcelServiceImpl loadExcelObject end..."); fileOut.close(); } return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#createWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook, java.lang.String) */ public XSSFWorkbook createXSSFWorkbook(XSSFWorkbook wb, String filepath) throws BaseException, FileNotFoundException, IOException { String fullFileName = filepath; log.debug("EgovExcelServiceImpl.createWorkbook : templatePath is " + FilenameUtils.getFullPath(fullFileName)); // 작업 디렉토리 생성 if (!EgovFileUtil.isExistsFile(FilenameUtils.getFullPath(fullFileName))) { log.debug("make dir " + FilenameUtils.getFullPath(fullFileName)); try { FileUtils.forceMkdir(new File(FilenameUtils.getFullPath(fullFileName))); } catch (IOException e) { throw new IOException("Cannot create directory for path: " + FilenameUtils.getFullPath(fullFileName)); } } FileOutputStream fileOut = new FileOutputStream(fullFileName); log.debug("EgovExcelServiceImpl.createWorkbook : templatePath is " + fullFileName); try { log.debug("ExcelServiceImpl loadExcelObject ..."); wb.write(fileOut); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] { "createXSSFWorkbook" }, Locale.getDefault()), e); } finally { log.debug("ExcelServiceImpl loadExcelObject end..."); fileOut.close(); } return wb; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#createSXSSFWorkbook(org.apache.poi.xssf.streaming.SXSSFWorkbook, java.lang.String) */ public SXSSFWorkbook createSXSSFWorkbook(SXSSFWorkbook wb, String filepath) throws BaseException, FileNotFoundException, IOException { String fullFileName = filepath; log.debug("EgovExcelServiceImpl.createWorkbook : templatePath is " + FilenameUtils.getFullPath(fullFileName)); // 작업 디렉토리 생성 if (!EgovFileUtil.isExistsFile(FilenameUtils.getFullPath(fullFileName))) { log.debug("make dir " + FilenameUtils.getFullPath(fullFileName)); try { FileUtils.forceMkdir(new File(FilenameUtils.getFullPath(fullFileName))); } catch (IOException e) { throw new IOException("Cannot create directory for path: " + FilenameUtils.getFullPath(fullFileName)); } } FileOutputStream fileOut = new FileOutputStream(fullFileName); log.debug("EgovExcelServiceImpl.createWorkbook : templatePath is " + fullFileName); try { log.debug("ExcelServiceImpl loadExcelObject ..."); wb.write(fileOut); } catch (Exception e) { log.error(getMessageSource().getMessage("error.excel.runtime.error", new Object[] { "createSXSSFWorkbook" }, Locale.getDefault()), e); } finally { log.debug("ExcelServiceImpl loadExcelObject end..."); fileOut.close(); } return wb; } /** * 엑셀Sheet을 읽어서 DB upload 한다. * * @param String queryId * @param HSSFSheet sheet * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.hssf.usermodel.HSSFSheet, int, long) */ public Integer uploadExcel(String queryId, HSSFSheet sheet, int start, long commitCnt) throws BaseException, Exception { log.debug("sheet.getPhysicalNumberOfRows() : " + sheet.getPhysicalNumberOfRows()); Integer rowsAffected = 0; try { long rowCnt = sheet.getPhysicalNumberOfRows(); long cnt = (commitCnt == 0) ? rowCnt : commitCnt; log.debug("Runtime.getRuntime().totalMemory() : " + Runtime.getRuntime().totalMemory()); log.debug("Runtime.getRuntime().freeMemory() : " + Runtime.getRuntime().freeMemory()); long startTime = System.currentTimeMillis(); for (int idx = start, i = start; idx < rowCnt; idx = i) { List<Object> list = new ArrayList<Object>(); log.debug("before Runtime.getRuntime().freeMemory() : " + Runtime.getRuntime().freeMemory()); EgovExcelMapping mapping = null; if (mapBeanName != null) { mapping = (EgovExcelMapping) applicationContext.getBean(mapBeanName); } else if (mapClass != null) { mapping = (EgovExcelMapping) EgovObjectUtil.instantiate(mapClass); } else { throw new RuntimeException(getMessageSource().getMessage("error.excel.property.error", null, Locale.getDefault())); } for (i = idx; i < rowCnt && i < (cnt + idx); i++) { HSSFRow row = sheet.getRow(i); list.add(mapping.mappingColumn(row)); } // insert // 현재 spring 연계 ibatis의 batch 형식으로 작성 후 중간에 exception 발생시켜도 rollback 이 불가한 문제가 있음. // ibatis 의 batch 관련하여서는 sqlMapClient.startTransaction() 이하의 코드 등 추가 작업이 필요한지 확인 필요! rowsAffected += dao.batchInsert(queryId, list); log.debug("after Runtime.getRuntime().freeMemory() : " + Runtime.getRuntime().freeMemory()); log.debug("\n\n\n" + rowsAffected); } log.debug("batchInsert time is " + (System.currentTimeMillis() - startTime)); } catch (Exception e) { throw new Exception(e); } log.debug("uploadExcel result count is " + rowsAffected); return rowsAffected; } /** * 엑셀Sheet을 읽어서 DB upload 한다. * * @param String queryId * @param HSSFSheet sheet * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadSXSSFExcel(java.lang.String, org.apache.poi.xssf.usermodel.XSSFSheet, int, long) */ public Integer uploadXSSFExcel(String queryId, XSSFSheet sheet, int start, long commitCnt) throws BaseException, Exception { log.debug("sheet.getPhysicalNumberOfRows() : " + sheet.getPhysicalNumberOfRows()); Integer rowsAffected = 0; try { long rowCnt = sheet.getPhysicalNumberOfRows(); long cnt = (commitCnt == 0) ? rowCnt : commitCnt; log.debug("Runtime.getRuntime().totalMemory() : " + Runtime.getRuntime().totalMemory()); log.debug("Runtime.getRuntime().freeMemory() : " + Runtime.getRuntime().freeMemory()); long startTime = System.currentTimeMillis(); for (int idx = start, i = start; idx < rowCnt; idx = i) { List<Object> list = new ArrayList<Object>(); log.debug("before Runtime.getRuntime().freeMemory() : " + Runtime.getRuntime().freeMemory()); EgovExcelXSSFMapping mapping = null; if (mapBeanName != null) { mapping = (EgovExcelXSSFMapping) applicationContext.getBean(mapBeanName); } else if (mapClass != null) { mapping = (EgovExcelXSSFMapping) EgovObjectUtil.instantiate(mapClass); } else { throw new RuntimeException(getMessageSource().getMessage("error.excel.property.error", null, Locale.getDefault())); } for (i = idx; i < rowCnt && i < (cnt + idx); i++) { XSSFRow row = sheet.getRow(i); list.add(mapping.mappingColumn(row)); } // insert // 현재 spring 연계 ibatis의 batch 형식으로 작성 중간에 exception 발생시켜도 rollback 이 불가한 문제가 있음. // ibatis 의 batch 관련하여서는 sqlMapClient.startTransaction() 이하의 코드 등 추가 작업이 필요한지 확인 필요! rowsAffected += dao.batchInsert(queryId, list); log.debug("after Runtime.getRuntime().freeMemory() : " + Runtime.getRuntime().freeMemory()); log.debug("\n\n\n" + rowsAffected); } log.debug("batchInsert time is " + (System.currentTimeMillis() - startTime)); } catch (Exception e) { throw new Exception(e); } log.debug("uploadExcel result count is " + rowsAffected); return rowsAffected; } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.hssf.usermodel.HSSFSheet, int) */ public Integer uploadExcel(String queryId, HSSFSheet sheet, int start) throws BaseException, Exception { return uploadExcel(queryId, sheet, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.xssf.usermodel.XSSFSheet, int) */ public Integer uploadXSSFExcel(String queryId, XSSFSheet sheet, int start) throws BaseException, Exception { return uploadXSSFExcel(queryId, sheet, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.hssf.usermodel.HSSFSheet, long) */ public Integer uploadExcel(String queryId, HSSFSheet sheet, long commitCnt) throws BaseException, Exception { return uploadExcel(queryId, sheet, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.xssf.usermodel.XSSFSheet, long) */ public Integer uploadXSSFExcel(String queryId, XSSFSheet sheet, long commitCnt) throws BaseException, Exception { return uploadXSSFExcel(queryId, sheet, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.hssf.usermodel.HSSFSheet) */ public Integer uploadExcel(String queryId, HSSFSheet sheet) throws BaseException, Exception { return uploadExcel(queryId, sheet, 0, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, org.apache.poi.hssf.usermodel.HSSFSheet) */ public Integer uploadXSSFExcel(String queryId, XSSFSheet sheet) throws BaseException, Exception { return uploadXSSFExcel(queryId, sheet, 0, 0); } /** * 엑셀파일을 읽어서 DB upload 한다. * * @param String queryId * @param InputStream fileIn * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, ava.io.InputStream, int) */ public Integer uploadExcel(String queryId, InputStream fileIn, int start, long commitCnt) throws BaseException, Exception { HSSFWorkbook wb = loadWorkbook(fileIn); HSSFSheet sheet = wb.getSheetAt(0); return uploadExcel(queryId, sheet, start, commitCnt); } /** * 엑셀파일을 읽어서 DB upload 한다. * * @param String queryId * @param InputStream fileIn * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, int) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, int start, long commitCnt) throws BaseException, Exception { XSSFWorkbook wb = loadXSSFWorkbook(fileIn); XSSFSheet sheet = wb.getSheetAt(0); return uploadXSSFExcel(queryId, sheet, start, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, int) */ public Integer uploadExcel(String queryId, InputStream fileIn, int start) throws BaseException, Exception { return uploadExcel(queryId, fileIn, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, int) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, int start) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream) */ public Integer uploadExcel(String queryId, InputStream fileIn, long commitCnt) throws BaseException, Exception { return uploadExcel(queryId, fileIn, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, long commitCnt) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream) */ public Integer uploadExcel(String queryId, InputStream fileIn) throws BaseException, Exception { return uploadExcel(queryId, fileIn, 0, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, 0, 0); } /** * 엑셀파일을 읽어서 DB upload 한다. sheet의 인덱스값으로 upload할 sheet를 지정한다. * * @param String queryId * @param InputStream fileIn * @param short sheetIndex * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short, int) */ public Integer uploadExcel(String queryId, InputStream fileIn, short sheetIndex, int start, long commitCnt) throws BaseException, Exception { HSSFWorkbook wb = loadWorkbook(fileIn); HSSFSheet sheet = wb.getSheetAt(sheetIndex); return uploadExcel(queryId, sheet, start, commitCnt); } /** * 엑셀파일을 읽어서 DB upload 한다. sheet의 인덱스값으로 upload할 sheet를 지정한다. * * @param String queryId * @param InputStream fileIn * @param short sheetIndex * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short, int) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, short sheetIndex, int start, long commitCnt) throws BaseException, Exception { XSSFWorkbook wb = loadXSSFWorkbook(fileIn); XSSFSheet sheet = wb.getSheetAt(sheetIndex); return uploadXSSFExcel(queryId, sheet, start, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short, int) */ public Integer uploadExcel(String queryId, InputStream fileIn, short sheetIndex, int start) throws BaseException, Exception { return uploadExcel(queryId, fileIn, sheetIndex, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short, int) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, short sheetIndex, int start) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, sheetIndex, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short, long) */ public Integer uploadExcel(String queryId, InputStream fileIn, short sheetIndex, long commitCnt) throws BaseException, Exception { return uploadExcel(queryId, fileIn, sheetIndex, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short, long) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, short sheetIndex, long commitCnt) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, sheetIndex, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short) */ public Integer uploadExcel(String queryId, InputStream fileIn, short sheetIndex) throws BaseException, Exception { return uploadExcel(queryId, fileIn, sheetIndex, 0, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, short) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, short sheetIndex) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, sheetIndex, 0, 0); } /** * 엑셀파일을 읽어서 DB upload 한다. sheet의 명으로 upload할 sheet를 지정한다. * * @param String queryId * @param InputStream fileIn * @param String sheetName * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String, int, long) */ public Integer uploadExcel(String queryId, InputStream fileIn, String sheetName, int start, long commitCnt) throws BaseException, Exception { HSSFWorkbook wb = loadWorkbook(fileIn); HSSFSheet sheet = wb.getSheet(sheetName); return uploadExcel(queryId, sheet, start, commitCnt); } /** * 엑셀파일을 읽어서 DB upload 한다. sheet의 명으로 upload할 sheet를 지정한다. * * @param String queryId * @param InputStream fileIn * @param String sheetName * @param int start * @param long commitCnt * @return * @throws Exception */ /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String, int, long) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, String sheetName, int start, long commitCnt) throws BaseException, Exception { XSSFWorkbook wb = loadXSSFWorkbook(fileIn); XSSFSheet sheet = wb.getSheet(sheetName); return uploadXSSFExcel(queryId, sheet, start, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String, int) */ public Integer uploadExcel(String queryId, InputStream fileIn, String sheetName, int start) throws BaseException, Exception { return uploadExcel(queryId, fileIn, sheetName, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String, int) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, String sheetName, int start) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, sheetName, start, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String, long) */ public Integer uploadExcel(String queryId, InputStream fileIn, String sheetName, long commitCnt) throws BaseException, Exception { return uploadExcel(queryId, fileIn, sheetName, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String, long) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, String sheetName, long commitCnt) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, sheetName, 0, commitCnt); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String) */ public Integer uploadExcel(String queryId, InputStream fileIn, String sheetName) throws BaseException, Exception { return uploadExcel(queryId, fileIn, sheetName, 0, 0); } /* * (non-Javadoc) * @see egovframework.rte.fdl.excel.EgovExcelService#uploadExcel(java.lang.String, java.io.InputStream, java.lang.String) */ public Integer uploadXSSFExcel(String queryId, InputStream fileIn, String sheetName) throws BaseException, Exception { return uploadXSSFExcel(queryId, fileIn, sheetName, 0, 0); } }