这篇文章主要记录自己学习上传和导出Excel时的一些心得,企业办公系统的开发中,经常会收到这样的需求:批量录入数据、数据报表使用 Excel 打开,或者职能部门同事要打印 Excel 文件,而他们又没有直接操作数据库的能力,这时就需要在某些模块中实现导入、导出 Excel 的功能。
接下来,我们就来看看借助哪些库、工具可以实行上述这些需求。
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 格式,相应的类有:
针对 xlsx 格式,相应的类有:
操作 Excel,POI 也提供了相应的方法。
读取 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);
原文:https://www.cnblogs.com/xiaowangtongxue/p/10726573.html