利用java操作Excel文件

使用jxl.jar进行操作
一.读取Excel文件内容
  
  
  1. /**读取Excel文件的内容  
  2.  * @param file  待读取的文件  
  3.  * @return  
  4.  */  
  5. public static String readExcel(File file){   
  6.     StringBuffer sb = new StringBuffer();   
  7.        
  8.     Workbook wb = null;   
  9.     try {   
  10.         //构造Workbook(工作薄)对象   
  11.         wb=Workbook.getWorkbook(file);   
  12.     } catch (BiffException e) {   
  13.         e.printStackTrace();   
  14.     } catch (IOException e) {   
  15.         e.printStackTrace();   
  16.     }   
  17.        
  18.     if(wb==null)   
  19.         return null;   
  20.        
  21.     //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了   
  22.     Sheet[] sheet = wb.getSheets();   
  23.        
  24.     if(sheet!=null&&sheet.length>0){   
  25.         //对每个工作表进行循环   
  26.         for(int i=0;i
  27.             //得到当前工作表的行数   
  28.             int rowNum = sheet[i].getRows();   
  29.             for(int j=0;j
  30.                 //得到当前行的所有单元格   
  31.                 Cell[] cells = sheet[i].getRow(j);   
  32.                 if(cells!=null&&cells.length>0){   
  33.                     //对每个单元格进行循环   
  34.                     for(int k=0;k
  35.                         //读取当前单元格的值   
  36.                         String cellValue = cells[k].getContents();   
  37.                         sb.append(cellValue+"\t");   
  38.                     }   
  39.                 }   
  40.                 sb.append("\r\n");   
  41.             }   
  42.             sb.append("\r\n");   
  43.         }   
  44.     }   
  45.     //最后关闭资源,释放内存   
  46.     wb.close();   
  47.     return sb.toString();   

二.写入Excel文件
  • /**生成一个Excel文件  
  •      * @param fileName  要生成的Excel文件名  
  •      */  
  •     public static void writeExcel(String fileName){   
  •         WritableWorkbook wwb = null;   
  •         try {   
  •             //首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象   
  •             wwb = Workbook.createWorkbook(new File(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();   
  •             }   
  •         }   
  •     }   
三.在一个Excel文件中查找是否包含某一个关键字

  • /**搜索某一个文件中是否包含某个关键字  
  •      * @param file  待搜索的文件  
  •      * @param keyWord  要搜索的关键字  
  •      * @return  
  •      */  
  •     public static boolean searchKeyWord(File file,String keyWord){   
  •         boolean res = false;   
  •            
  •         Workbook wb = null;   
  •         try {   
  •             //构造Workbook(工作薄)对象   
  •             wb=Workbook.getWorkbook(file);   
  •         } catch (BiffException e) {   
  •             return res;   
  •         } catch (IOException e) {   
  •             return res;   
  •         }   
  •            
  •         if(wb==null)   
  •             return res;   
  •            
  •         //获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了   
  •         Sheet[] sheet = wb.getSheets();   
  •            
  •         boolean breakSheet = false;   
  •            
  •         if(sheet!=null&&sheet.length>0){   
  •             //对每个工作表进行循环   
  •             for(int i=0;i
  •                 if(breakSheet)   
  •                     break;   
  •                    
  •                 //得到当前工作表的行数   
  •                 int rowNum = sheet[i].getRows();   
  •                    
  •                 boolean breakRow = false;   
  •                    
  •                 for(int j=0;j
  •                     if(breakRow)   
  •                         break;   
  •                     //得到当前行的所有单元格   
  •                     Cell[] cells = sheet[i].getRow(j);   
  •                     if(cells!=null&&cells.length>0){   
  •                         boolean breakCell = false;   
  •                         //对每个单元格进行循环   
  •                         for(int k=0;k
  •                             if(breakCell)   
  •                                 break;   
  •                             //读取当前单元格的值   
  •                             String cellValue = cells[k].getContents();   
  •                             if(cellValue==null)   
  •                                 continue;   
  •                             if(cellValue.contains(keyWord)){   
  •                                 res = true;   
  •                                 breakCell = true;   
  •                                 breakRow = true;   
  •                                 breakSheet = true;   
  •                             }   
  •                         }   
  •                     }   
  •                 }   
  •             }   
  •         }   
  •         //最后关闭资源,释放内存   
  •         wb.close();   
  •            
  •         return res;   
  •     }  
四.往Excel中插入图片图标

  • /**往Excel中插入图片  
  •  * @param dataSheet  待插入的工作表  
  •  * @param col 图片从该列开始  
  •  * @param row 图片从该行开始  
  •  * @param width 图片所占的列数  
  •  * @param height 图片所占的行数  
  •  * @param imgFile 要插入的图片文件  
  •  */  
  • public static void insertImg(WritableSheet dataSheet, int col, int row, int width,   
  •         int height, File imgFile){   
  •     WritableImage img = new WritableImage(col, row, width, height, imgFile);   
  •     dataSheet.addImage(img);   
  • }   
  •  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,0,1,6,6,imgFile);   
  • workbook.write();   
  • workbook.close();   
  •  catch (IOException e) {   
  • e.printStackTrace();   
  •  catch (WriteException e) {   
  • e.printStackTrace();  



转载自:http://www.iteye.com/topic/55844

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值