java读取excel文件并复制(copy)文件到指定目录示例
本文导语: 代码如下:mport java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.apache.log4j.Logger;import org.apache.poi.hssf.us...
mport java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import 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;
public class DeployByExcel {
private static Logger logger= Logger.getLogger(DeployByExcel.class);
static final int BUFFER = 8192;
//Excel
private HSSFWorkbook workbook ;
/**
* 读取Excel文件并将文件列表放到list中
* @param sheetNumber
* @param dir excel文件所在目录
* @return
* @throws FileNotFoundException
* @throws IOException
*/
public List getDatasInSheet(int sheetNumber,File dir) throws FileNotFoundException, IOException{
File[] files = dir.listFiles();
List result = new ArrayList();
for(File f : files)
{
if(!f.getName().toLowerCase().endsWith(".xls"))
{
continue;
}
workbook = new HSSFWorkbook(new FileInputStream(f));
//获得指定的表
HSSFSheet sheet = workbook.getSheetAt(sheetNumber);
//获得数据总行数
int rowCount = sheet.getLastRowNum();
logger.info("found excel rows count: " + rowCount);
if (rowCount < 1) {
return result;
}
//逐行读取数据
for (int rowIndex = 4; rowIndex 1)
result.add(str);
}
}
}
return result;
}
private void copy(String sourcePath,String destPath,List fileList,String webContent) throws 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);
if(f)
{
logger.info("The file is:" + num);
num ++;
String fileName1 = str;
int n = 1;
while(fileName1.endsWith(".class"))
{
str = fileName1.replace(".class", "$" + n +".class");
if(!copyFile(str,sourcePath,destPath))
{
break;
}
n ++;
}
}
}
}
}
/**
* copy str to destPath
*
* @param str
* @param sourcePath
* @param destPath
* @return boolean isFile return true;else return false;
* @throws IOException
*/
private boolean copyFile(String str,String sourcePath,String destPath) throws IOException
{
boolean f = false;
String destFilePath = destPath+str;
String sourceFilePath = sourcePath+str;
File newDir = new File(destFilePath.substring(0,destFilePath.lastIndexOf('/')));
File sourceFile = new File(sourceFilePath.trim());
if(!sourceFile.exists())
{
return 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=new byte[1024];
int ins;
while((ins=in.read(buffer))!=-1){
out.write(buffer,0,ins);
}
in.close();
out.flush();
out.close();
f = true;
}
return f;
}
/**
* 获得单元格中的内容
* @param cell
* @return
*/
protected Object getCellString(HSSFCell cell){
Object result = null;
if (cell != null) {
int cellType = cell.getCellType();
switch(cellType){
case HSSFCell.CELL_TYPE_STRING :
result = cell.getRichStringCellValue().getString();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
result=cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_FORMULA:
result = cell.getNumericCellValue();
break;
case HSSFCell.CELL_TYPE_ERROR:
result=null;
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
result=cell.getBooleanCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK:
result=null;
break;
}
}
return result;
}
/**
*
* @param args args[0]:Excel文件所在目录;args[1]:源目录(编译后的文件目录);args[2]:发布目录
* @throws Exception
*/
public static void main(String[] args) throws Exception {
if(args == null || 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/
}
}