POI操作excel文件基础
怀着激动地心情开始本人的第一篇博文编写,希望用博客记录我的技术进阶路上的历程,也给需要的同志们提供一点小小的指导。OK,进入今天的主题吧——POI Excel文件操作基础
话说Apache的office文挡的操作库的确很神奇也很强大,最近我在写一个关于“随机抽取试卷”功能的小项目,需要设计java对excel文件的操作,于是走上了踏上了探索POI的路程。
需要用的POI Jar包在这里哦!http://poi.apache.org/download.html
看看我的导入的jar包:
这里需要对扩展名为.xlsx的文件进行读取并输出,POI的读取方式是读取Excel表格的每一个小格的数据,一个小格就是一个类XSSFCell对象。
Okay,还是代码看的比较直接比较爽:public static String readXlsx(String path) { String text = ""; try { OPCPackage pkg = OPCPackage.open(path); XSSFWorkbook excel = new XSSFWorkbook(pkg); XSSFSheet sheet1 = excel.getSheetAt(0); for(@SuppressWarnings("rawtypes") java.util.Iterator itRow = sheet1.iterator(); itRow.hasNext();) { XSSFRow row = (XSSFRow) itRow.next(); for(java.util.Iterator<Cell> it = row.cellIterator(); it.hasNext();) { XSSFCell cell = (XSSFCell) it.next(); text += cell.getStringCellValue() + "\n"; } } excel.close(); } catch (Exception e) { e.printStackTrace(); log.warning(e.toString()); } return text; }
调用这个方法可以读取你的.xlsx文件里的数据哦!看看效果吧!look here:
当然,excel表格的扩展名可以是“.xlsx”也可以是“.xls”,这两种类型文件操作的方式是不同的,但是还是大同小异的啦,不过调用的类 不同而已。这里给一个读取“.xls”文件的方法:public static String readXls(String path) { String text=""; try { FileInputStream is = new FileInputStream(path); HSSFWorkbook excel=new HSSFWorkbook(is); //获取第一个sheet HSSFSheet sheet0=excel.getSheetAt(0); for (Iterator rowIterator=sheet0.iterator();rowIterator.hasNext();) { HSSFRow row=(HSSFRow) rowIterator.next(); for (Iterator iterator=row.cellIterator();iterator.hasNext();) { HSSFCell cell=(HSSFCell) iterator.next(); //根据单元的的类型 读取相应的结果 if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING) text+=cell.getStringCellValue()+"\t"; else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC) text+=cell.getNumericCellValue()+"\t"; else if(cell.getCellType()==HSSFCell.CELL_TYPE_FORMULA) text+=cell.getCellFormula()+"\t"; } text+="\n"; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return text; }
POI还支持Word、PPT文件的操作,慢慢学习吧。
我的博文处女作到这里就要完成了,希望每天进步一点,fighting!