你的位置:首页 > 软件开发 > Java > POI 实现对 Excel 文件读写

POI 实现对 Excel 文件读写

发布时间:2016-03-08 21:00:07
Apache POI是Apache软件基金会的开放源码函式库。 提供API给Java应用程序对Microsoft Office格式档案读和写的功能。 老外起名字总是很谦虚,POI为(Poor Obfuscation Implementati ...

      Apache POI是Apache软件基金会的开放源码函式库。

     提供API给Java应用程序对Microsoft Office格式档案读和写的功能。

     老外起名字总是很谦虚,POI为(Poor Obfuscation Implementation)的首字母缩写,意为“可怜的模糊实现”。

     如果你查看过 Apache 开源库中的任意项目的源码,你会发现恰到好处的设计模式、模块之间的高内聚低耦合、接口抽象相当到位、实现方式也非常优雅,这样的一些特定。

    o(︶︿︶)o 唉 需要多严谨的思维、多大的代码实现量,多少项目的设计积累,才能达到那样的高度?

     POI 中主要提供的读写 Microsoft Office 功能点如下:

     HSSF -- 提供读写Microsoft Excel格式档案的功能。

     XSSF -- 提供读写Microsoft Excel OO

     HWPF -- 提供读写Microsoft Word格式档案的功能。

     HSLF -- 提供读写Microsoft PowerPoint格式档案的功能。

     HDGF -- 提供读写Microsoft Visio格式档案的功能。

     本文借一次使用POI 实现读写 Excel 的过程,记述其中具体POI运用的方式。

     由搜索引擎点进来的同学,上面这一句话就是本文的主旨句。若能解决你问题,请往下细看。

     项目中使用的是最新的 poi-3.14-20160307.jar,百度云地址:http://pan.baidu.com/s/1bnWFWg3 密码: kame

1.一点点实现前的设计

     因项目比较大,下面为单独新建工程后的例子。

   POI 实现对 Excel 文件读写

2.POI 写 Excel

     上图左侧用例图为 POI 写 Excel

    a.getExcelData: 获取需要输出到Excel数据,这里的数据获取可以是从持久层,页面展示层......

      (例子中的数据为Mysql自有数据库中表help_categroy 表记录),其中的 JavaBean建立 与 数据库获取的过程这里就不说了。

      获取数据的数据类型是这样的 List<HelpCategory>    

     b.POI Write Workbook:这里才是关键的地方,使用POI 将数据实例化为 HSSFWorkbook。核心代码如下:

POI 实现对 Excel 文件读写POI 实现对 Excel 文件读写
 public HSSFWorkbook expExcel(List<HelpCategory> helpCategories) {    HSSFWorkbook workbook = new HSSFWorkbook();    HSSFSheet sheet = workbook.createSheet();    createSheetStyle(workbook, sheet);    HSSFRow row = sheet.createRow(0);    HSSFCell cell;    HelpCategory category = new HelpCategory();    Field[] fields = category.getClass().getDeclaredFields();    for (int j = 0; j < fields.length; j++) {      cell = row.createCell(j);      cell.setCellValue(fields[j].getName());      cell.setCellStyle(this.textAlignCenter);    }    for (int i = 0; i < helpCategories.size(); i++) {      category = helpCategories.get(i);      row = sheet.createRow(i + 1);      for (int k = 0; k < fields.length; k++) {        Field field = fields[k];        Object o = invokeGet(category, field.getName());        cell = row.createCell(k);        cell.setCellValue(o != null ? o.toString() : "");        cell.setCellStyle((k == 0 || k == 1) ? this.textAlignCenter : this.textAlignLeft);      }    }    return workbook;  }

原标题:POI 实现对 Excel 文件读写

关键词:excel

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录