Я читаю файл Excel и сохраняю его на карте для дальнейшего использования. Используя приведенный ниже код, который работает идеально. Но для некоторых файлов, которые показаны ниже ошибка при открытии
Код:
private Workbook workbook;
public Map<String,String> readMaster(Properties properties) {
Map<String,String> masterMap = new HashMap<String, String>();
try {
File masterFile = new File(properties.get(ReportConstants.DCS_INPUT_PATH) + ReportConstants.DCS_MASTER_FILE);
if(!masterFile.exists()){
throw new FileNotFoundException();
}else{
FileInputStream excelFile = new FileInputStream(masterFile);
workbook = new XSSFWorkbook(excelFile);
Sheet datatypeSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = datatypeSheet.iterator();
int headItr = 0;
while (iterator.hasNext()) {
String key="",value="";
Row currentRow = iterator.next();
Iterator<Cell> cellIterator = currentRow.iterator();
int rowItr = 0;
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
//Some logic
}
masterMap.put(key, value);
}
}
for (Map.Entry<String,String> entry : masterMap.entrySet()){
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}
if(!masterMap.isEmpty()){
/*FileUtility.checkDestinationDir(""+properties.get(ReportConstants.DCS_ARCHIVE_PATH));
FileUtility.moveFile(properties.get(ReportConstants.DCS_INPUT_PATH) + ReportConstants.DCS_MASTER_FILE,
properties.get(ReportConstants.DCS_ARCHIVE_PATH)+ReportConstants.DCS_MASTER_FILE+FileUtility.getArchivedPattern());*/
}else{
EmailService.sendExceptionMail(properties.getProperty(ReportConstants.EMAIL_EXCEPTION_TO),
properties.getProperty(ReportConstants.EMAIL_EXCEPTION_CC),
" No data in master file ",
"DCS : Empty Master File");
throw new Exception("No data in master file");
}
} catch (FileNotFoundException e) {
log.error("File not present while reading Master file ",e);
EmailService.sendExceptionMail(properties.getProperty(ReportConstants.EMAIL_EXCEPTION_TO),
properties.getProperty(ReportConstants.EMAIL_EXCEPTION_CC),
" File not present while reading Master file \n\n"+e.getMessage(),
"DCS Report : Master File");
} catch (IOException e) {
log.error("Input/Output Exception occured while reading Master file ",e);
EmailService.sendExceptionMail(properties.getProperty(ReportConstants.EMAIL_EXCEPTION_TO),
properties.getProperty(ReportConstants.EMAIL_EXCEPTION_CC),
" Input/Output Exception occured while reading Master file \n\n"+e.getMessage(),
"DCS Report : Master File");
} catch (Exception e) {
log.error("Genric exception occured while reading Master file ",e);
EmailService.sendExceptionMail(properties.getProperty(ReportConstants.EMAIL_EXCEPTION_TO),
properties.getProperty(ReportConstants.EMAIL_EXCEPTION_CC),
"Exception Occurred : \n\n"+e.getMessage(),
"DCS Report : Master File");
}
finally{
try {
if (null!=excelFile) {
excelFile.close();
}
if(null!=workbook){
workbook.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return masterMap;
}
Далее я сохраняю детали на картуи вернуть его для дальнейшего использования. Я использую:
Редактировать 1: Добавлен мой завершенный метод, надеюсь, он поможет повторить проблему.
Редактировать 2: После нажатия «Да» во всплывающем сообщении об ошибке и его сохранения программа работает нормально.
Есть ли способ справиться с этим. Пожалуйста, предложите