Copie el código de código de la siguiente manera:
importar java.io.File;
importar java.io.FileInputStream;
importar java.io.FileNotFoundException;
importar java.io.FileOutputStream;
importar java.io.IOException;
importar java.io.InputStream;
importar java.util.ArrayList;
importar java.util.List;
importar org.apache.log4j.Logger;
importar org.apache.poi.hssf.usermodel.HSSFCell;
importar org.apache.poi.hssf.usermodel.HSSFRow;
importar org.apache.poi.hssf.usermodel.HSSFSheet;
importar org.apache.poi.hssf.usermodel.HSSFWorkbook;
clase pública Implementar por Excel {
registrador estático privado registrador = Logger.getLogger (DeployByExcel.class);
estático final int BUFFER = 8192;
//Sobresalir
libro de trabajo privado HSSFWorkbook;
/**
* Lea el archivo de Excel y coloque la lista de archivos en la lista.
* @param número de hoja
* @param dir El directorio donde se encuentra el archivo de Excel
* @devolver
* @throws FileNotFoundException
* @throwsIOException
*/
Lista pública <Cadena> getDatasInSheet (int número de hoja, directorio de archivo) arroja FileNotFoundException, IOException {
Archivo[] archivos = dir.listFiles();
Lista<Cadena> resultado = nueva ArrayList<Cadena>();
para (Archivo f: archivos)
{
if(!f.getName().toLowerCase().endsWith(".xls"))
{
continuar;
}
libro de trabajo = nuevo HSSFWorkbook (nuevo FileInputStream (f));
//Obtener la tabla especificada
Hoja HSSFSheet = workbook.getSheetAt(sheetNumber);
//Obtener el número total de filas de datos
int rowCount = hoja.getLastRowNum();
logger.info("recuento de filas de Excel encontradas: " + rowCount);
si (número de filas < 1) {
resultado de devolución;
}
//Leer datos línea por línea
for (int índice de filas = 4; índice de filas <= recuento de filas; índice de filas ++) {
//Obtener el objeto de fila
HSSFRow fila = hoja.getRow(rowIndex);
si (fila! = nulo) {
Lista<Objeto> datos de fila = nueva ArrayList<Objeto>();
//Obtiene el número de celdas en esta fila
int columnCount = fila.getLastCellNum();
//Obtiene los datos de cada celda de esta fila
Celda HSSFCell = fila.getCell(1);
//Obtener los datos en la celda especificada
Cadena cadena = (Cadena)this.getCellString(celda);
si (cadena! = nulo && str.length()>1)
resultado.add(str);
}
}
}
resultado de devolución;
}
copia vacía privada (String sourcePath,String destPath,List<String> fileList,String webContent) arroja IOException{
número int =1;
para (Cadena cadena: lista de archivos){
str = str.replace(".java", ".class");
si (str.indexOf("/")!=-1){
si (str.indexOf("src")==0){
str = str.replace("src", "WEB-INF/clases");
}si no (str.toUpperCase().indexOf(webContent.toUpperCase())==0){
str = str.replace(webContent+"/", "");
}
booleano f = copyFile(str,sourcePath,destPath);
si(f)
{
logger.info("El archivo es:" + num);
número++;
Cadena nombredearchivo1 = cadena;
int norte = 1;
mientras(nombreDeArchivo1.endsWith(".clase"))
{
str = fileName1.replace(".class", "$" + n +".class");
if(!copiarArchivo(cadena,rutafuente,rutadest))
{
romper;
}
n++;
}
}
}
}
}
/**
* copiar cadena a rutadestino
*
* @param str
* @param rutafuente
* @param rutadestino
* @return boolean isFile devuelve verdadero; de lo contrario, devuelve falso;
* @throwsIOException
*/
copyFile booleano privado (String str, String sourcePath, String destPath) lanza IOException
{
booleano f = falso;
Cadena destFilePath = destPath+str;
Cadena sourceFilePath = sourcePath+str;
Archivo newDir = nuevo archivo(destFilePath.substring(0,destFilePath.lastIndexOf('/')));
Archivo fuenteFile = nuevo archivo(sourceFilePath.trim());
si(!archivofuente.existe())
{
devolver f;
}
logger.info("dest:"+destFilePath+" "+"fuente:"+sourceFilePath);
Archivo destFile = nuevo archivo(destFilePath.trim());
si (!newDir.exists()){
newDir.mkdirs();
}
si(!sourceFile.isDirectory())
{
InputStream en=new FileInputStream(sourceFile);
FileOutputStream out=new FileOutputStream(destFile);
byte[] buffer=nuevo byte[1024];
int ins;
while((ins=in.read(búfer))!=-1){
out.write(búfer,0,ins);
}
cercar();
salida.flush();
fuera.cerrar();
f = verdadero;
}
devolver f;
}
/**
* Obtener el contenido de la celda.
* @param celda
* @devolver
*/
Objeto protegido getCellString (celda HSSFCell) {
Resultado del objeto = nulo;
si (celda! = nulo) {
int cellType = cell.getCellType();
cambiar(tipo de celda){
caso HSSFCell.CELL_TYPE_STRING:
resultado = cell.getRichStringCellValue().getString();
romper;
caso HSSFCell.CELL_TYPE_NUMERIC:
resultado=cell.getNumericCellValue();
romper;
caso HSSFCell.CELL_TYPE_FORMULA:
resultado = cell.getNumericCellValue();
romper;
caso HSSFCell.CELL_TYPE_ERROR:
resultado=nulo;
romper;
caso HSSFCell.CELL_TYPE_BOOLEAN:
resultado=cell.getBooleanCellValue();
romper;
caso HSSFCell.CELL_TYPE_BLANK:
resultado=nulo;
romper;
}
}
resultado de devolución;
}
/**
*
* @param args args[0]: directorio donde se encuentra el archivo Excel; args[1]: directorio de origen (directorio de archivos compilados args[2]: directorio de lanzamiento);
* @throwsException
*/
public static void main (String [] args) lanza una excepción {
if(args == nulo || args.length <3)
{
logger.info("el archivo no se encuentra;");
logger.fatal("java cn.id5.deploy.DeployByExcel $0 $1 $2 $3 /n$0: directorio donde se encuentra el archivo Excel; $1: directorio de origen (directorio de archivos compilados); $2: directorio de lanzamiento; $3: directorio donde se encuentra jsp (el valor predeterminado es contenido web, puede estar vacío)/siguiente.");
Sistema.salir(0);
}
Archivo archivo = nuevo Archivo (args[0]);
Implementar DeployByExcel = nuevo DeployByExcel();
Lista<Cadena> lista de archivos = implementar.getDatasInSheet(0,archivo);
Cadena classPath = args[1];
Cadena rutadestino = args[2];
Cadena contenido web = (args.length> 3 && args[3] != null && args[3].length() > 1) args[3] : "WebContent";
implementar.copia(classPath, destPath, fileList, webContent);
///tmp/gboss /media/terry/doc/Project_ID5/gboss/WebContent/
}
}