使用POI 向Excel中追加数据

         引言:最近对于Excel 的导出接触的比较多,一直也没有系统的去整理,在此做一个简单的整理,先说如何向Excel中追加数据,至于Excel的导出、导入会在下几篇篇文章中详细描述。希望够共同学习。ok,直接上代码:

 

public static void main(String[] args) {
         String   filePath="D:\\test.xls";
  // 输出流
  try {
   FileInputStream is = new FileInputStream(filePath);
   Workbook wb =getWorkbook(is);
   System.out.println("aaa");
   Sheet sheet1 = wb.getSheetAt(0);
   System.out.println(sheet1.getLastRowNum());
   Row row = sheet1.createRow(sheet1.getLastRowNum() + 1);
   row.setHeightInPoints((short) 25);
   // 给这一行赋值
   row.createCell(0).setCellValue("12");
   row.createCell(1).setCellValue("23");
   FileOutputStream os = new FileOutputStream(filePath);
   wb.write(os);
   is.close();
   os.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
public static Workbook getWorkbook(InputStream is) throws IOException{  
      Workbook wb = null;  
              if(!is.markSupported()){  
                  is = new PushbackInputStream(is,8);           
              }  
              if (POIFSFileSystem.hasPOIFSHeader(is)) {       //Excel2003及以下版本  
                  wb = (Workbook) new HSSFWorkbook(is);  
              }else if (POIXMLDocument.hasOOXMLHeader(is)) {      //Excel2007及以上版本  
                  wb = new XSSFWorkbook(is);    
              }else{  
                  throw new IllegalArgumentException("你的Excel版本目前poi无法解析!");                    
              }  
        //  }  
      return wb;  
  } 

部分代码解释:Workbook wb =getWorkbook(is);将要追加的文件变成一个输入流,从而得到Workbook,第二部分主要是对于Excel版本的一些判断,不同的版本解析的方式也不一样。解析所需要的包http://download.csdn.net/detail/javaweiming/5848751。

你可能感兴趣的:(java)