Kopieren Sie den Codecode wie folgt:
java.io.File importieren;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
java.util.List importieren;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
öffentliche Klasse DeployByExcel {
private static Logger logger= Logger.getLogger(DeployByExcel.class);
static final int BUFFER = 8192;
//Excel
private HSSFWorkbook-Arbeitsmappe;
/**
* Lesen Sie die Excel-Datei und fügen Sie die Dateiliste in die Liste ein
* @param sheetNumber
* @param dir Das Verzeichnis, in dem sich die Excel-Datei befindet
* @zurückkehren
* @throws FileNotFoundException
* @throwsIOException
*/
public List<String> getDatasInSheet(int sheetNumber,File dir) löst FileNotFoundException, IOException{ aus
File[] files = dir.listFiles();
List<String> result = new ArrayList<String>();
for(Datei f: Dateien)
{
if(!f.getName().toLowerCase().endsWith(".xls"))
{
weitermachen;
}
workbook = new HSSFWorkbook(new FileInputStream(f));
//Die angegebene Tabelle abrufen
HSSFSheet sheet = workbook.getSheetAt(sheetNumber);
//Gesamtzahl der Datenzeilen abrufen
int rowCount = sheet.getLastRowNum();
logger.info("Anzahl der Excel-Zeilen gefunden: " + rowCount);
if (rowCount < 1) {
Ergebnis zurückgeben;
}
//Daten Zeile für Zeile lesen
for (int rowIndex = 4; rowIndex <= rowCount; rowIndex++) {
//Das Zeilenobjekt abrufen
HSSFRow row = sheet.getRow(rowIndex);
if (row != null) {
List<Object> rowData = new ArrayList<Object>();
//Ermitteln Sie die Anzahl der Zellen in dieser Zeile
int ColumnCount = row.getLastCellNum();
//Die Daten in jeder Zelle dieser Zeile abrufen
HSSFCell cell = row.getCell(1);
//Die Daten in der angegebenen Zelle abrufen
String str = (String)this.getCellString(cell);
if (str!=null && str.length()>1)
result.add(str);
}
}
}
Ergebnis zurückgeben;
}
private void copy(String sourcePath,String destPath,List<String> fileList,String webContent) wirft IOException{
int num =1;
for (String str : fileList){
str = str.replace(".java", ".class");
if (str.indexOf("/")!=-1){
if (str.indexOf("src")==0){
str = str.replace("src", "WEB-INF/classes");
}else if (str.toUpperCase().indexOf(webContent.toUpperCase())==0){
str = str.replace(webContent+"/", "");
}
boolean f = copyFile(str,sourcePath,destPath);
wenn(f)
{
logger.info("Die Datei ist:" + num);
num++;
String fileName1 = str;
int n = 1;
while(fileName1.endsWith(".class"))
{
str = fileName1.replace(".class", "$" + n +".class");
if(!copyFile(str,sourcePath,destPath))
{
brechen;
}
n++;
}
}
}
}
}
/**
* str nach destPath kopieren
*
* @param str
* @param sourcePath
* @param destPath
* @return boolean isFile return true;sonst return false;
* @throwsIOException
*/
private boolean copyFile(String str,String sourcePath,String destPath) löst eine IOException aus
{
boolean f = false;
String destFilePath = destPath+str;
String sourceFilePath = sourcePath+str;
File newDir = new File(destFilePath.substring(0,destFilePath.lastIndexOf('/')));
Datei sourceFile = new File(sourceFilePath.trim());
if(!sourceFile.exists())
{
Rückkehr f;
}
logger.info("dest:"+destFilePath+" "+"source:"+sourceFilePath);
File destFile = new File(destFilePath.trim());
if (!newDir.exists()){
newDir.mkdirs();
}
if(!sourceFile.isDirectory())
{
InputStream in=new FileInputStream(sourceFile);
FileOutputStream out=new FileOutputStream(destFile);
byte[] buffer=neues Byte[1024];
int ins;
while((ins=in.read(buffer))!=-1){
out.write(buffer,0,ins);
}
in.close();
out.flush();
out.close();
f = wahr;
}
Rückkehr f;
}
/**
* Holen Sie sich den Inhalt der Zelle
* @param Zelle
* @zurückkehren
*/
protected Object getCellString(HSSFCell cell){
Objektergebnis = null;
if (cell != null) {
int cellType = cell.getCellType();
switch(cellType){
Fall HSSFCell.CELL_TYPE_STRING:
result = cell.getRichStringCellValue().getString();
brechen;
Fall HSSFCell.CELL_TYPE_NUMERIC:
result=cell.getNumericCellValue();
brechen;
Fall HSSFCell.CELL_TYPE_FORMULA:
result = cell.getNumericCellValue();
brechen;
Fall HSSFCell.CELL_TYPE_ERROR:
Ergebnis=null;
brechen;
Fall HSSFCell.CELL_TYPE_BOOLEAN:
result=cell.getBooleanCellValue();
brechen;
Fall HSSFCell.CELL_TYPE_BLANK:
Ergebnis=null;
brechen;
}
}
Ergebnis zurückgeben;
}
/**
*
* @param args[0]: Verzeichnis, in dem sich die Excel-Datei befindet; args[1]: Quellverzeichnis (kompiliertes Dateiverzeichnis);
* @throwsException
*/
public static void main(String[] args) löst eine Ausnahme aus {
if(args == null || args.length <3 )
{
logger.info("Datei wurde nicht gefunden;");
logger.fatal("java cn.id5.deploy.DeployByExcel $0 $1 $2 $3 /n$0: Verzeichnis, in dem sich die Excel-Datei befindet; $1: Quellverzeichnis (Verzeichnis der kompilierten Datei); $2: Release-Verzeichnis; $3: Verzeichnis, in dem sich JSP befindet (Standard ist webContent, kann leer sein)/nexiting.");
System.exit(0);
}
Datei file = new File(args[0]);
DeployByExcel deploy = new DeployByExcel();
List<String> fileList =ploy.getDatasInSheet(0,file);
String classPath = args[1];
String destPath = args[2];
String webContent = (args.length> 3 && args[3] != null && args[3].length() > 1) ? args[3] : "WebContent";
Deploy.copy(classPath, destPath, fileList, webContent);
///tmp/gboss /media/terry/doc/Project_ID5/gboss/WebContent/
}
}