109 lines
3.1 KiB
Plaintext
Executable File
109 lines
3.1 KiB
Plaintext
Executable File
package com.fp.excel;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.util.StringTokenizer;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
|
/**
|
|
* Clase que obtiene el archivo de excel a partir de un arreglo de bytes
|
|
*
|
|
* @author malmeida
|
|
*/
|
|
public class WorkbookFactoryStreamBytes implements ExcelToMapMessages {
|
|
|
|
private InputStream inp;
|
|
private String workbookFactoryStatus, file_extension, extension;
|
|
private Workbook wb;
|
|
private byte[] arrayBytesExcel;
|
|
|
|
/**
|
|
*
|
|
* @param arrayBytesExcel
|
|
* @param extension
|
|
*/
|
|
public WorkbookFactoryStreamBytes(byte[] arrayBytesExcel, String extension) {
|
|
this.workbookFactoryStatus = null;
|
|
this.arrayBytesExcel = arrayBytesExcel;
|
|
this.inp = inputStreamBuilder(this.arrayBytesExcel);
|
|
this.extension = extension;
|
|
this.wb = this.excelWorkbookBuilder(this.extension);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param arrayBytesExcel
|
|
* @return
|
|
*/
|
|
private InputStream inputStreamBuilder(byte[] arrayBytesExcel) {
|
|
try {
|
|
InputStream inpm = new ByteArrayInputStream(arrayBytesExcel);
|
|
this.workbookFactoryStatus = WorkbookFactoryStreamBytes.INPUT_STREAM_CREATED;
|
|
return inpm;
|
|
} catch (Exception ex) {
|
|
this.workbookFactoryStatus = WorkbookFactoryStreamBytes.FILE_NOT_FOUND;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param fileExtension
|
|
* @return
|
|
*/
|
|
private Workbook excelWorkbookBuilder(String fileExtension) {
|
|
if (this.workbookFactoryStatus.equals(WorkbookFactoryStreamBytes.FILE_NOT_FOUND)) {
|
|
this.workbookFactoryStatus = WorkbookFactoryStreamBytes.WORKBOOK_NOT_CREATED;
|
|
return null;
|
|
} else {
|
|
Workbook wbm = null;
|
|
try {
|
|
this.file_extension = fileExtension;
|
|
if (this.file_extension.equals("xls")) {
|
|
wbm = new HSSFWorkbook(this.inp);
|
|
}
|
|
if (this.file_extension.equals("xlsx")) {
|
|
wbm = new XSSFWorkbook(this.inp);
|
|
}
|
|
this.workbookFactoryStatus = WorkbookFactoryStreamBytes.WORKBOOK_CREATED;
|
|
return wbm;
|
|
} catch (IOException ex) {
|
|
this.workbookFactoryStatus = WorkbookFactoryStreamBytes.WORKBOOK_NOT_CREATED;
|
|
return null;
|
|
} catch (Exception ex) {
|
|
this.workbookFactoryStatus = WorkbookFactoryStreamBytes.WORKBOOK_NOT_CREATED;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return
|
|
*/
|
|
public String getWorkbookFactoryStatus() {
|
|
return this.workbookFactoryStatus;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return
|
|
*/
|
|
public String getWorkbookFactoryStatusByte() {
|
|
return this.workbookFactoryStatus;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return
|
|
*/
|
|
public Workbook getExcelWorkBook() {
|
|
return this.wb;
|
|
}
|
|
} |