【JavaWeb开发】使用java实现简单的Excel文件的导入与导出(POI)
2016-09-09 23:49
1351 查看
前言:在实际的开发中,我们经常需要用户在界面中输入大量重复且有规律的数据,但是一个表单一个表单的填写效率过慢,而且过多的表单也会给JavaWeb的业务逻辑开发带来不小的困扰,所以我们可以使用一个Excel文件来代替这些大量重复且有规律的数据。
由于POI也是apache的一个子项目,所以我们直接去apache的官网直接下载即可:POI官网下载链接
Excel转ArrayList
ArrayList转Excel
使用java实现简单的Excel文件的导入与导出 (POI)
需要导入的jar包:由于POI也是apache的一个子项目,所以我们直接去apache的官网直接下载即可:POI官网下载链接
Excel转ArrayList
/** * * 描述:excel转list * 方法名: excelToList * 类名:ExamServiceImpl * 返回值类型:ArrayList<StudentInfoEntity> * 开发者:暴沸 * 创建时间:2016年8月30日 下午8:48:17 * @param file * @return * @throws IOException */ //代码解释:此方法主要用于将Excel中的内容转为ArrayList public ArrayList<StudentInfoEntity> excelToList(String URL) throws IOException { //代码解释:此方法将传入一个URL,即为当前用户所上传的Excel的目标路径,然后返回一个泛型为StudentInfoEntity的ArrayList //代码解释:实例化一个新的泛型为StudentInfoEntity的ArrayList对象,用于后面存放从Excel中解析到的内容 ArrayList<StudentInfoEntity> list = new ArrayList<>(); //代码解释:创建这个需要解析的Excel文件 File file = new File(URL); //代码解释:创建Excel,读取文件内容,此处使用的是XSSFWorkbook,默认是2013版本,如果是比较老的版本,请使用HSSFWorkbook,其他均需要将X改为H XSSFWorkbook workbook = new XSSFWorkbook(FileUtils.openInputStream(file)); //代码解释:读取默认第一个工作表sheet XSSFSheet sheet = workbook.getSheetAt(0); //代码解释:获取sheet中最后一行行号 int lastRowNum = sheet.getLastRowNum(); //代码解释:循环所有行 for (int i = 1; i <= lastRowNum; i++) { //代码解释:获取当前行中的内容 XSSFRow row = sheet.getRow(i); //代码解释:由于本人在Excel模版中设定的内容仅有两列有效,并且在其他行中,我存放了提示,所以这里不能使用自动获取最后一列,否则程序将出现错误。此处设置当前行最后单元格列号为2(为了避免因为我设置的提示而导致的错误) int lastCellNum = 2; //代码解释:循环单元格列号,此处主要是用于解析一行中的所有列,将其转化为集合(数组也可以),主要是为了方便后面的操作,此步骤非必须 ArrayList<String> list2 = new ArrayList<>(); int index=0; //代码解释:获取该行中的数据,并存入集合中(数组也可以) for (int j = 0; j < lastCellNum; j++) { XSSFCell cell = row.getCell(j); if(index<lastCellNum){ list2.add(cell.getStringCellValue()); } } //代码解释:实例化一个新的StudentInfoEntity对象用于存放上一个for循环中读取并将该行的数据存入即将返回的ArrayList中 StudentInfoEntity studentInfoEntity = new StudentInfoEntity(); studentInfoEntity.setStudentName(list2.get(0)); studentInfoEntity.setStudentNumber(list2.get(1)); list.add(studentInfoEntity); } return list; }
ArrayList转Excel
/** * 从数据库中获取数据,并利用POS生成Excel文件 * POI生成Excel文件 * */ public String downloadGrade(int examId,String contextPath,String examName) { //从数据库中获取到的该考试所有考生的成绩的结果集 ArrayList<MarkEntity> markEntities = studentGradeDao.getStudentGrade(examId); String[] title = {"学号","姓名","成绩","ip"}; //创建Excel工作簿 XSSFWorkbook workbook = new XSSFWorkbook(); //创建一个工作表sheet XSSFSheet sheet = workbook.createSheet(); //创建第一行 XSSFRow row = sheet.createRow(0); XSSFCell cell = null; //插入第一行数据 学号,姓名,成绩,ip地址 for (int i = 0; i < title.length; i++) { cell = row.createCell(i); cell.setCellValue(title[i]); } //追加数据 int j = 1; for (int i = 0; i < markEntities.size(); i++) { MarkEntity markEntity = markEntities.get(i); XSSFRow nextrow = sheet.createRow(j); XSSFCell cell2 = nextrow.createCell(0); cell2.setCellValue(markEntity.getStudentNumber()); cell2 = nextrow.createCell(1); cell2.setCellValue(markEntity.getStudentName() ); cell2 = nextrow.createCell(2); cell2.setCellValue(markEntity.getMark() ); cell2 = nextrow.createCell(3); cell2.setCellValue(markEntity.getIp() ); j++; } //创建一个文件 String path = contextPath+"/"+examName+".xlsx"; File file = new File(path); try { file.createNewFile(); //将Excel内容存盘 FileOutputStream stream = FileUtils.openOutputStream(file); workbook.write(stream); stream.close(); } catch (IOException e) { e.printStackTrace(); } return path; }
相关文章推荐
- 使用POI实现在java程序中导入导出Excel文件数据
- Java-Maven-POI 简单导入导出Excel通用工具,默认使用基于poi实现
- web中使用POI导入导出EXCEL文件的例子
- web中使用POI导入导出EXCEL文件的例子
- Java使用POI实现数据导出excel报表
- Excel导出学习之道:Java Web利用POI导出Excel简单例子
- java中使用poi实现导入Excel
- POI导出大量数据的简单解决方案(附源码)-Java-POI导出大量数据,导出Excel文件,压缩ZIP(转载自iteye.com)
- 使用POI 实现 Excel 导入导出
- Java Web利用POI导出Excel简单例子
- java实现excel的导入导出(poi详解)[转]
- 导入Excel和导出Excel的简单方法与程序处理方法,使用Excel程序读写Excel ,实现Excel的多个 Sheets读写并导出
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- JAVA实现数据库数据导入/导出到Excel(POI)
- java使用poi实现大数据量导出为EXCEL
- 使用Java POI导入导出Excel数据
- Java使用POI实现数据导出excel报表
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- java实现 Excel文件的导入导出(1)