انسخ رمز الكود كما يلي:
mport java.io.File;
استيراد java.io.FileInputStream؛
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
استيراد java.io.InputStream؛
import java.util.ArrayList;
import java.util.List;
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;
الطبقة العامة DeployByExcel {
مسجل ثابت خاص logger= Logger.getLogger(DeployByExcel.class);
المخزن المؤقت النهائي الثابت = 8192؛
//اكسل
مصنف HSSFWorkbook الخاص؛
/**
* اقرأ ملف Excel ثم ضع قائمة الملفات في القائمة
* @paramsheetNumber
* @param dir الدليل الذي يوجد به ملف Excel
* @يعود
* @throws FileNotFoundException
* @throwsIOException
*/
القائمة العامة <String> getDatasInSheet (intsheetNumber,File dir) throws FileNotFoundException, IOException{
File[] files = dir.listFiles();
List<String> result = new ArrayList<String>();
لـ (ملف و : ملفات)
{
إذا (!f.getName().toLowerCase().endsWith(".xls"))
{
يكمل؛
}
Workbook = new HSSFWorkbook(new FileInputStream(f));
// احصل على الجدول المحدد
ورقة HSSFSheet = Workbook.getSheetAt(sheetNumber);
// احصل على العدد الإجمالي لصفوف البيانات
introwCount =sheet.getLastRowNum();
logger.info("تم العثور على عدد صفوف Excel:" +rowCount);
إذا (عدد الصفوف <1) {
نتيجة الإرجاع؛
}
// قراءة سطر البيانات سطرًا
for (introwIndex = 4;rowIndex <=rowCount;rowIndex++) {
// احصل على كائن الصف
HSSFRow Row = Sheet.getRow(rowIndex);
إذا (صف! = فارغ) {
List<Object>rowData = new ArrayList<Object>();
// احصل على عدد الخلايا في هذا الصف
int columnCount =row.getLastCellNum();
// احصل على البيانات الموجودة في كل خلية في هذا الصف
خلية HSSFCell =row.getCell(1);
// احصل على البيانات في الخلية المحددة
String str = (String)this.getCellString(cell);
إذا (str!=null && str.length()>1)
result.add(str);
}
}
}
نتيجة الإرجاع؛
}
نسخة باطلة خاصة (String sourcePath,String destPath,List<String> fileList,String webContent) تطرح IOException{
عدد صحيح = 1؛
لـ (سلسلة: fileList){
str = str.replace(".java"، ".class");
إذا (str.indexOf("/")!=-1){
إذا (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);
إذا (و)
{
logger.info("الملف هو:" + num);
رقم++;
String fileName1 = str;
كثافة العمليات ن = 1؛
بينما (fileName1.endsWith(".class"))
{
str = fileName1.replace(".class"، "$" + n +".class");
إذا (!copyFile(str،sourcePath،destPath))
{
استراحة؛
}
ن++;
}
}
}
}
}
/**
* انسخ str إلى destPath
*
* @param شارع
* @param sourcePath
* @param destPath
*return boolean isFile return true;else return false;
* @throwsIOException
*/
ملف نسخ منطقي خاص (String str، String sourcePath، String destPath) يطرح IOException
{
منطقية و = خطأ؛
String destFilePath = destPath+str;
String sourceFilePath = sourcePath+str;
File newDir = new File(destFilePath.substring(0,destFilePath.lastIndexOf('/')));
File sourceFile = new File(sourceFilePath.trim());
إذا (!sourceFile.exists())
{
العودة و؛
}
logger.info("dest:"+destFilePath+" "+"source:"+sourceFilePath);
File destFile = new File(destFilePath.trim());
إذا (!newDir.exists()){
newDir.mkdirs();
}
إذا (!sourceFile.isDirectory())
{
InputStream in=new FileInputStream(sourceFile);
FileOutputStream out=new FileOutputStream(destFile);
بايت[] المخزن المؤقت=بايت جديد[1024];
إنت الإضافية؛
بينما((ins=in.read(buffer))!=-1){
out.write(buffer,0,ins);
}
in. Close();
out.flush();
out.Close();
و = صحيح؛
}
العودة و؛
}
/**
* الحصول على محتويات الخلية
* @param الخلية
* @يعود
*/
كائن محمي getCellString (خلية HSSFCell) {
نتيجة الكائن = فارغة؛
إذا (الخلية != فارغة) {
int cellType = cell.getCellType();
التبديل (نوع الخلية) {
الحالة HSSFCell.CELL_TYPE_STRING:
النتيجة = cell.getRichStringCellValue().getString();
استراحة؛
الحالة HSSFCell.CELL_TYPE_NUMERIC:
result=cell.getNumericCellValue();
استراحة؛
الحالة HSSFCell.CELL_TYPE_FORMULA:
النتيجة = cell.getNumericCellValue();
استراحة؛
الحالة HSSFCell.CELL_TYPE_ERROR:
النتيجة = فارغة؛
استراحة؛
الحالة HSSFCell.CELL_TYPE_BOOLEAN:
result=cell.getBooleanCellValue();
استراحة؛
الحالة HSSFCell.CELL_TYPE_BLANK:
النتيجة = فارغة؛
استراحة؛
}
}
نتيجة الإرجاع؛
}
/**
*
* @param args args[0]: الدليل الذي يوجد به ملف Excel args[1]: الدليل المصدر (دليل الملف المترجم)؛
* @throwsException
*/
public static void main(String[] args) يطرح الاستثناء {
إذا (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.");
System.exit(0);
}
ملف الملف = ملف جديد(args[0]);
DeployByExcelploy = new DeployByExcel();
List<String> fileList = Deploy.getDatasInSheet(0,file);
String classPath = args[1];
String destPath = args[2];
String webContent = (args.length> 3 && args[3] != null && args[3].length() > 1) ?
ploy.copy(classPath, destPath, fileList, webContent);
///tmp/gboss /media/terry/doc/Project_ID5/gboss/WebContent/
}
}