Скопируйте код кода следующим образом:
импортировать java.io.File;
импортировать java.io.FileInputStream;
импортировать java.io.FileNotFoundException;
импортировать java.io.FileOutputStream;
импортировать java.io.IOException;
импортировать java.io.InputStream;
импортировать java.util.ArrayList;
импортировать java.util.List;
импортировать org.apache.log4j.Logger;
импортировать org.apache.poi.hssf.usermodel.HSSFCell;
импортировать org.apache.poi.hssf.usermodel.HSSFRow;
импортировать org.apache.poi.hssf.usermodel.HSSFSheet;
импортировать org.apache.poi.hssf.usermodel.HSSFWorkbook;
общественный класс DeployByExcel {
частный статический регистратор logger = Logger.getLogger(DeployByExcel.class);
статический финал int BUFFER = 8192;
//Эксель
личная книга HSSFWorkbook;
/**
* Прочитайте файл Excel и поместите список файлов в список.
* @param номер листа
* @param dir Каталог, в котором находится файл Excel.
* @возвращаться
* @throws FileNotFoundException
* @throwsIOException
*/
public List<String> getDatasInSheet(intsheetNumber,File dir) выдает FileNotFoundException, IOException{
File[] files = dir.listFiles();
Результат List<String> = новый ArrayList<String>();
for(Файл f: файлы)
{
if(!f.getName().toLowerCase().endsWith(".xls"))
{
продолжать;
}
рабочая книга = новая HSSFWorkbook (новый FileInputStream (f));
//Получаем указанную таблицу
Лист HSSFSheet = workbook.getSheetAt(sheetNumber);
//Получаем общее количество строк данных
int rowCount =sheet.getLastRowNum();
logger.info("найдено количество строк Excel: " + rowCount);
если (rowCount <1) {
вернуть результат;
}
//Читаем данные построчно
for (int rowIndex = 4; rowIndex <= rowCount; rowIndex++) {
//Получаем объект строки
Строка HSSFRow = лист.getRow(rowIndex);
если (строка != ноль) {
List<Object> rowData = новый ArrayList<Object>();
//Получаем количество ячеек в этой строке
int columnsCount = row.getLastCellNum();
//Получаем данные в каждой ячейке этой строки
Ячейка HSSFCell = row.getCell(1);
//Получаем данные в указанную ячейку
String str = (String)this.getCellString(cell);
если (str!=null && str.length()>1)
результат.добавить(строка);
}
}
}
вернуть результат;
}
частная недействительная копия (String sourcePath, String destPath, List <String> fileList, String webContent) выдает IOException {
целое число = 1;
for (String str: fileList){
str = str.replace(".java", ".class");
если (str.indexOf("/")!=-1){
если (str.indexOf("src")==0){
str = str.replace("src", "WEB-INF/classes");
}иначе, если (str.toUpperCase().indexOf(webContent.toUpperCase())==0){
str = str.replace(webContent+"/", "");
}
логическое значение f = copyFile(str, sourcePath, destPath);
если (е)
{
logger.info("Файл:" + num);
число++;
Строка имя_файла1 = ул;
интервал п = 1;
while(fileName1.endsWith(".class"))
{
str = fileName1.replace(".class", "$" + n +".class");
if(!copyFile(str,sourcePath,destPath))
{
перерыв;
}
н++;
}
}
}
}
}
/**
* скопировать строку в destPath
*
* @param ул
* @param sourcePath
* @param destPath
* @return boolean isFile return true; else return false;
* @throwsIOException
*/
частный логический copyFile (String str, String sourcePath, String destPath) выдает IOException
{
логическое значение f = ложь;
Строка destFilePath = destPath+str;
Строка sourceFilePath = sourcePath+str;
Файл newDir = новый файл(destFilePath.substring(0,destFilePath.lastIndexOf('/')));
Исходный файл файла = новый файл (sourceFilePath.trim());
если(!sourceFile.exists())
{
вернуть f;
}
logger.info("dest:"+destFilePath+" "+"source:"+sourceFilePath);
Файл destFile = новый файл (destFilePath.trim());
если (!newDir.exists()){
новыйDir.mkdirs();
}
если(!sourceFile.isDirectory())
{
InputStream in = новый FileInputStream (sourceFile);
FileOutputStream out = новый FileOutputStream (destFile);
байт [] буфер = новый байт [1024];
int ins;
while((ins=in.read(buffer))!=-1){
out.write(буфер,0,ins);
}
в.закрыть();
out.flush();
выход.закрыть();
е = правда;
}
вернуть f;
}
/**
* Получить содержимое ячейки
* @param ячейка
* @возвращаться
*/
защищенный объект getCellString (ячейка HSSFCell) {
Результат объекта = ноль;
если (ячейка != ноль) {
int cellType = cell.getCellType();
переключатель (тип ячейки) {
случай HSSFCell.CELL_TYPE_STRING:
результат = cell.getRichStringCellValue().getString();
перерыв;
случай HSSFCell.CELL_TYPE_NUMERIC:
результат = ячейка.getNumericCellValue();
перерыв;
случай HSSFCell.CELL_TYPE_FORMULA:
результат = cell.getNumericCellValue();
перерыв;
случай HSSFCell.CELL_TYPE_ERROR:
результат = ноль;
перерыв;
случай HSSFCell.CELL_TYPE_BOOLEAN:
результат = ячейка.getBooleanCellValue();
перерыв;
случай HSSFCell.CELL_TYPE_BLANK:
результат = ноль;
перерыв;
}
}
вернуть результат;
}
/**
*
* @param args args[0]: каталог, в котором находится файл Excel; args[1]: исходный каталог (каталог скомпилированного файла); args[2]: каталог выпуска;
* @throwsException
*/
public static void main(String[] args) выдает исключение {
if(args == null || args.length <3 )
{
logger.info("Файл не найден;");
logger.fatal("java cn.id5.deploy.DeployByExcel $0 $1 $2 $3 /n$0: каталог, в котором находится файл Excel; $1: исходный каталог (каталог скомпилированного файла); $2: каталог выпуска; $3: каталог, в котором находится jsp (по умолчанию — webContent, может быть пустым)/nexiting.");
Система.выход(0);
}
Файл файл = новый файл (args [0]);
DeployByExcel Deploy = новый DeployByExcel();
List<String> fileList = Deploy.getDatasInSheet(0,file);
Строка classPath = args[1];
Строка destPath = args[2];
String webContent = (args.length> 3 && args[3] != null && args[3].length() > 1) ? args[3] : "WebContent";
развертывание.copy(classPath, destPath, fileList, webContent);
///tmp/gboss /media/terry/doc/Project_ID5/gboss/WebContent/
}
}