importjava.io.File;importjava.io.IOException;importjxl.Cell;importjxl.Sheet;importjxl.Workbook;importjxl.read.biff.BiffException;importjxl.write.Label;importjxl.write.WritableImage;importjxl.write.WritableSheet;importjxl.write.WritableWorkbook;importjxl.write.WriteException;importjxl.write.biff.RowsExceededException;public classExcelUtils {/**读取Excel文件的内容
*@paramfile 待读取的文件
*@return
*/
public staticString readExcel(File file){
StringBuffer sb= newStringBuffer();
Workbook wb= null;try{//构造Workbook(工作薄)对象
wb=Workbook.getWorkbook(file);
}catch(BiffException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}if(wb==null)return null;//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet =wb.getSheets();if(sheet!=null&&sheet.length>0){//对每个工作表进行循环
for(int i=0;i
int rowNum =sheet[i].getRows();for(int j=0;j
Cell[] cells =sheet[i].getRow(j);if(cells!=null&&cells.length>0){//对每个单元格进行循环
for(int k=0;k
String cellValue =cells[k].getContents();
sb.append(cellValue+"\t");
}
}
sb.append("\r\n");
}
sb.append("\r\n");
}
}//最后关闭资源,释放内存
wb.close();
System.out.println("313");returnsb.toString();
}/**生成一个Excel文件
*@paramfileName 要生成的Excel文件名*/
public static voidwriteExcel(String fileName){
WritableWorkbook wwb= null;try{//首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(newFile(fileName));
}catch(IOException e) {
e.printStackTrace();
}if(wwb!=null){//创建一个可写入的工作表//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("sheet1", 0);//下面开始添加单元格
for(int i=0;i<10;i++){for(int j=0;j<5;j++){//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行
Label labelC = new Label(j, i, "这是第"+(i+1)+"行,第"+(j+1)+"列");try{//将生成的单元格添加到工作表中
ws.addCell(labelC);
}catch(RowsExceededException e) {
e.printStackTrace();
}catch(WriteException e) {
e.printStackTrace();
}
}
}try{//从内存中写入文件中
wwb.write();//关闭资源,释放内存
wwb.close();
}catch(IOException e) {
e.printStackTrace();
}catch(WriteException e) {
e.printStackTrace();
}
}
}/**搜索某一个文件中是否包含某个关键字
*@paramfile 待搜索的文件
*@paramkeyWord 要搜索的关键字
*@return
*/
public static booleansearchKeyWord(File file,String keyWord){boolean res = false;
Workbook wb= null;try{//构造Workbook(工作薄)对象
wb=Workbook.getWorkbook(file);
}catch(BiffException e) {returnres;
}catch(IOException e) {returnres;
}if(wb==null)returnres;//获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
Sheet[] sheet =wb.getSheets();boolean breakSheet = false;if(sheet!=null&&sheet.length>0){//对每个工作表进行循环
for(int i=0;i
int rowNum =sheet[i].getRows();boolean breakRow = false;for(int j=0;j
Cell[] cells =sheet[i].getRow(j);if(cells!=null&&cells.length>0){boolean breakCell = false;//对每个单元格进行循环
for(int k=0;k
String cellValue =cells[k].getContents();if(cellValue==null)continue;if(cellValue.contains(keyWord)){
res= true;
breakCell= true;
breakRow= true;
breakSheet= true;
}
}
}
}
}
}//最后关闭资源,释放内存
wb.close();
System.out.print(res);returnres;
}/**往Excel中插入图片
*@paramdataSheet 待插入的工作表
*@paramcol 图片从该列开始
*@paramrow 图片从该行开始
*@paramwidth 图片所占的列数
*@paramheight 图片所占的行数
*@paramimgFile 要插入的图片文件*/
public static void insertImg(WritableSheet dataSheet, int col, int row, intwidth,intheight, File imgFile){
WritableImage img= newWritableImage(col, row, width, height, imgFile);
dataSheet.addImage(img);
}public static voidmain(String[] args) {try{//创建一个工作薄
WritableWorkbook workbook = Workbook.createWorkbook(new File("D:/test1.xls"));//待插入的工作表
WritableSheet imgSheet = workbook.createSheet("Images",0);//要插入的图片文件
File imgFile = new File("D:/1.png");//图片插入到第二行第一个单元格,长宽各占六个单元格
insertImg(imgSheet,1,2,4,6,imgFile);//从第2列第3行开始,右占4列,下占6行
workbook.write();
workbook.close();
File excel= new File("c:\\test.XLS");//String index out of range: 118
System.out.println(readExcel(excel));
System.out.println(searchKeyWord(excel,"1"));
writeExcel("c:\\test.XLS");
}catch(IOException e) {
e.printStackTrace();
}catch(WriteException e) {
e.printStackTrace();
}
}
}//本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/833422