Spring MVC 实现文件的导入导出功能

简介

这篇文章主要记录自己学习上传和导出Excel时的一些心得,企业办公系统的开发中,经常会收到这样的需求:批量录入数据、数据报表使用 Excel 打开,或者职能部门同事要打印 Excel 文件,而他们又没有直接操作数据库的能力,这时就需要在某些模块中实现导入、导出 Excel 的功能。

接下来,我们就来看看借助哪些库、工具可以实行上述这些需求。

POI 简介

Apache POI 是 Apache 软件基金会的开放源码函式库,POI 提供了 API,可以帮助 Java 程序实现对 Microsoft Office 格式档案的读写功能。

首先需要了解下 Excel 的文件格式,目前主要有两种格式,即 xls 和 xlsx 格式。 xlsx 是从 Office 2007 版开始使用的,使用新的基于 XML 的压缩文件格式取代了当时专有的默认文件格式,在传统文件扩展名后面添加了字母 x 使其占用空间更小,可以向下兼容 xls ,2007 版本后的 Excel 软件都可以操作 xls 和 xlsx 格式文件,而之前的版本只能打开 xls 格式文件。

针对不同 Excel 文档格式,POI 提供了不同的类来处理。

针对 xls 格式,相应的类有:

  • HSSFWorkbook excel 文档对象
  • HSSFSheet excel 表格对象
  • HSSFRow excel 表格行对象
  • HSSFCell excel 单元格对象
  • HSSFCellStyle excel 单元格格式
  • ……

针对 xlsx 格式,相应的类有:

  • XSSFWorkbook excel 文档对象
  • XSSFSheet excel 表格对象
  • XSSFRow excel 表格行对象
  • XSSFCell excel 单元格对象
  • XSSFCellStyle excel 单元格格式
  • ……

操作 Excel,POI 也提供了相应的方法。

 

扫描二维码关注公众号,回复: 5927171 查看本文章

读取 Excel,相应的方法有:

//获取文件流
InputStream is = new FileInputStream(file);
//得到Excel工作簿对象
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
//得到Excel工作表对象
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
//得到Excel工作表的指定行对象
XSSFRow xssfRow = xssfSheet.getRow(i);
//得到Excel工作表指定行的单元格
XSSFCell xssfCell = xssfRow.getCell(i);
//得到单元格样式
XSSFCellStyle xssfCellStyle = xssfCell.getCellStyle();

创建 Excel,相应的方法有:

//创建工作薄
XSSFWorkbook wb = new XSSFWorkbook();
//创建工作表对象
XSSFSheet sheet = wb.createSheet("sheet1");
//创建Excel工作表的行对象
XSSFRow row = sheet.createRow(i);
//创建单元格样式
XSSFCellStyle style = wb.createCellStyle();
//创建Excel工作表指定行的单元格
XSSFCell cell = row.createCell(i);
//设置Excel单元格的值 
cell.setCellStyle(style);


 

猜你喜欢

转载自www.cnblogs.com/xiaowangtongxue/p/10726573.html