zoukankan      html  css  js  c++  java
  • Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据。下面POI包的下载地址http://poi.apache.org/download.html,有兴趣的朋友也可以去看看其中的API。

         下面分享一下在对POI进行基本操作时觉得需要注意的两点:

          1.POI中针对xlsx/xls是需要create different Workbook instance HSSFWorkbook是针对xls XSSFWorkbook是针对xlsx的。

       1:  String fileaddress="E:/博客统计.xlsx"; //读取Excel地址
       2:  XSSFWorkbook wb=null;
       3:  File f = new File(fileaddress);// 读取excel文件
       4:  FileInputStream is = new FileInputStream(f);// 创建文件流
       5:  if(fileaddress.toLowerCase().endsWith("xlsx")){
       6:       wb = new XSSFWorkbook(is);  //如果xlsx版本的就创建XSSFWorkbook对象
       7:  } else if(fileName.toLowerCase().endsWith("xls")){  
       8:       wb = new HSSFWorkbook(is);  //如果xls版本的就创建HSSFWorkbook对象
       9:  }

          2.在向Excel中导入数据时需要明白sheet中是否有row这个对象,如果有的话就getRow(),gerCell(),setCellValue(),没有的话就需要createRow(),createCell(),setCellValue().

       1:    XSSFSheet sheet = wb.getSheetAt(1); // 第一个工作表  
       2:    int lastrow = sheet.getLastRowNum() + 1;   
       3:    if(rowindex_<lastrow){    
       4:      XSSFRow row = sheet.getRow(rowindex_);// 获得行对象             
       5:      row.getCell(0).setCellValue(bolgname2);      
       6:      row.getCell(1).setCellValue(linktime2);    
       7:      row.getCell(2).setCellValue(linktitle2);      
       8:      row.getCell(3).setCellValue(linkresult2);     
       9:      row.getCell(4).setCellValue(linkred2);      
      10:      row.getCell(5).setCellValue(linkpinglun2);      
      11:      row.getCell(6).setCellValue(tuijianString2);      
      12:      row.getCell(7).setCellValue(fanduiString2);      
      13:      }            
      14:      else{      
      15:       XSSFRow row = sheet.createRow(rowindex_);    
      16:       row.createCell(0).setCellValue(bolgname2);    
      17:       row.createCell(1).setCellValue(linktime2);   
      18:       row.createCell(2).setCellValue(linktitle2);   
      19:       row.createCell(3).setCellValue(linkresult2);   
      20:       row.createCell(4).setCellValue(linkred2);    
      21:       row.createCell(5).setCellValue(linkpinglun2);    
      22:       row.createCell(6).setCellValue(tuijianString2);    
      23:       row.createCell(7).setCellValue(fanduiString2);    
      24:         }
         3.关闭流
       1:  FileOutputStream fileOut = new FileOutputStream(fileaddress);
       2:          wb.write(fileOut);
       3:          is.close();
       4:          fileOut.close();

           最后今天对博客统计修复了一个bug,发现正则表达式在控制字符串格式时很给力但是水很深需要好好学习,就把他当成下一个学习目标,然后下一次解决问题时,脑子里迸出来的就是他。

    学会勇敢
  • 相关阅读:
    两次动态输入和while的结合使用
    索引切片步长
    12.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
    输出1-100的所以奇数或偶数
    求1-2+3-4+5 ... 99的所有数的和
    求1-100所有数的和
    三次登录机会
    while输入12345689
    while和格式化输出的复合使用
    44
  • 原文地址:https://www.cnblogs.com/Sir-Lin/p/4674921.html
Copyright © 2011-2022 走看看