คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้าไฟล์ 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 สุดท้ายคงที่ = 8192;
//เอ็กเซล
สมุดงาน HSSFWorkbook ส่วนตัว
-
* อ่านไฟล์ Excel และใส่รายการไฟล์ลงในรายการ
* @param sheetNumber
* @param dir ไดเร็กทอรีที่มีไฟล์ Excel อยู่
* @กลับ
* @ พ่น FileNotFoundException
* @throwsIOException
-
รายการสาธารณะ <String> getDatasInSheet (int sheetNumber, File dir) พ่น FileNotFoundException, IOException {
ไฟล์ [] ไฟล์ = dir.listFiles ();
รายการ <สตริง> ผลลัพธ์ = ใหม่ ArrayList<String>();
สำหรับ(ไฟล์ f : ไฟล์)
-
ถ้า(!f.getName().toLowerCase().endsWith(".xls"))
-
ดำเนินการต่อ;
-
สมุดงาน = HSSFWorkbook ใหม่ (FileInputStream ใหม่ (f));
//รับตารางที่ระบุ
แผ่นงาน HSSFSheet = workbook.getSheetAt(sheetNumber);
//รับจำนวนแถวข้อมูลทั้งหมด
int rowCount = sheet.getLastRowNum();
logger.info("พบจำนวนแถวของ Excel: " + rowCount);
ถ้า (จำนวนแถว < 1) {
ส่งคืนผลลัพธ์;
-
//อ่านข้อมูลทีละบรรทัด
สำหรับ (int rowIndex = 4; rowIndex <= rowCount; rowIndex++) {
//รับวัตถุแถว
แถว HSSFRow = sheet.getRow(rowIndex);
ถ้า (แถว != null) {
รายการ <วัตถุ> rowData = ใหม่ ArrayList<วัตถุ>();
//รับจำนวนเซลล์ในแถวนี้
int columnCount = row.getLastCellNum();
//รับข้อมูลในแต่ละเซลล์ในแถวนี้
เซลล์ HSSFCell = row.getCell(1);
//รับข้อมูลในเซลล์ที่ระบุ
สตริง str = (สตริง) this.getCellString (เซลล์);
ถ้า (str!=null && str.length()>1)
result.add(str);
-
-
-
ส่งคืนผลลัพธ์;
-
สำเนาโมฆะส่วนตัว (String sourcePath, String destPath, List <String> fileList, String webContent) พ่น IOException {
จำนวน int =1;
สำหรับ (สตริง str : fileList){
str = str.replace(".java", ".class");
ถ้า (str.indexOf("/")!=-1){
ถ้า (str.indexOf("src")==0){
str = str.replace("src", "WEB-INF/คลาส");
} มิฉะนั้น if (str.toUpperCase().indexOf(webContent.toUpperCase())==0){
str = str.replace(เว็บเนื้อหา+"/", "");
-
บูลีน f = copyFile (str, sourcePath, destPath);
ถ้า(ฉ)
-
logger.info("ไฟล์คือ:" + num);
หมายเลข++;
สตริงชื่อไฟล์1 = str;
อินท์ n = 1;
ในขณะที่(fileName1.endsWith(".class"))
-
str = fileName1.replace(".class", "$" + n +".class");
ถ้า(!copyFile(str,sourcePath,destPath))
-
หยุดพัก;
-
n++;
-
-
-
-
-
-
* คัดลอก str ไปยัง destPath
-
* @param str
* @param sourcePath
* @param destPath
* @return บูลีน isFile ส่งคืนจริง; มิฉะนั้นส่งคืนเท็จ;
* @throwsIOException
-
copyFile บูลีนส่วนตัว (String str, String sourcePath, String destPath) ส่ง IOException
-
บูลีน f = เท็จ;
สตริง destFilePath = destPath+str;
สตริง sourceFilePath = sourcePath+str;
ไฟล์ newDir = ไฟล์ใหม่ (destFilePath.substring(0,destFilePath.lastIndexOf('/')));
ไฟล์ sourceFile = ไฟล์ใหม่ (sourceFilePath.trim());
ถ้า(!sourceFile.exists())
-
กลับฉ;
-
logger.info("dest:"+destFilePath+" "+"source:"+sourceFilePath);
ไฟล์ destFile = ไฟล์ใหม่ (destFilePath.trim());
ถ้า (!newDir.exists()){
newDir.mkdirs();
-
ถ้า(!sourceFile.isDirectory())
-
InputStream ใน = FileInputStream ใหม่ (sourceFile);
FileOutputStream out=ใหม่ FileOutputStream(destFile);
ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [1024];
อินท์อิน;
ในขณะที่ ((ins=in.read(บัฟเฟอร์))!=-1){
out.write (บัฟเฟอร์, 0, ins);
-
ใน.ปิด();
ออก.ล้าง();
ออก.ปิด();
ฉ = จริง;
-
กลับฉ;
-
-
* รับเนื้อหาของเซลล์
* @เซลล์ param
* @กลับ
-
วัตถุที่ได้รับการป้องกัน getCellString (เซลล์ HSSFCell) {
ผลลัพธ์ของวัตถุ = null;
ถ้า (เซลล์ != null) {
int cellType = cell.getCellType();
สวิตช์ (ประเภทเซลล์) {
กรณี HSSFCell.CELL_TYPE_STRING:
ผลลัพธ์ = cell.getRichStringCellValue().getString();
หยุดพัก;
กรณี HSSFCell.CELL_TYPE_NUMERIC:
ผล=cell.getNumericCellValue();
หยุดพัก;
กรณี HSSFCell.CELL_TYPE_FORMULA:
ผลลัพธ์ = cell.getNumericCellValue();
หยุดพัก;
กรณี HSSFCell.CELL_TYPE_ERROR:
ผลลัพธ์=โมฆะ;
หยุดพัก;
กรณี HSSFCell.CELL_TYPE_BOOLEAN:
ผล=cell.getBooleanCellValue();
หยุดพัก;
กรณี HSSFCell.CELL_TYPE_BLANK:
ผลลัพธ์=โมฆะ;
หยุดพัก;
-
-
ส่งคืนผลลัพธ์;
-
-
-
* @param args args[0]: ไดเร็กทอรีที่มีไฟล์ Excel; args[1]: ไดเร็กทอรีต้นทาง (ไดเร็กทอรีไฟล์ที่คอมไพล์แล้ว);
* @throwsException
-
โมฆะคงที่สาธารณะ 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: ไดเร็กทอรี release; $3: ไดเร็กทอรีที่มี jsp ตั้งอยู่ (ค่าเริ่มต้นคือ webContent สามารถเว้นว่างได้)/nexiting");
System.ออก(0);
-
ไฟล์ไฟล์ = ไฟล์ใหม่ (args [0]);
DeployByExcel ปรับใช้ = DeployByExcel ใหม่ ();
รายการ fileList = Deploy.getDatasInSheet(0,ไฟล์);
สตริง classPath = args [1];
สตริง destPath = args[2];
สตริง 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/
-
-