引言:最近对于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。