前言:在实际的开发中,我们经常需要用户在界面中输入大量重复且有规律的数据,但是一个表单一个表单的填写效率过慢,而且过多的表单也会给JavaWeb的业务逻辑开发带来不小的困扰,所以我们可以使用一个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中的内容转为ArrayListpublic 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改为HXSSFWorkbook workbook = new XSSFWorkbook(FileUtils.openInputStream(file));//代码解释:读取默认第一个工作表sheetXSSFSheet 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();//创建一个工作表sheetXSSFSheet 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;}

【JavaWeb开发】使用java实现简单的Excel文件的导入与导出(POI)相关推荐

  1. 使用PHPExcel实现Excel文件的导入和导出(模板导出)

    在之前有写过一篇文章讲述了使用PHP快速生成excel表格文件并下载,这种方式生成Excel文件,生成速度很快,但是有缺点是: 1.单纯的生成Excel文件,生成的文件没有样式,单元格属性(填充色,宽 ...

  2. java excel 导入导出_java中excel文件的导入和导出

    如有需要可以加我Q群[308742428]大家一起讨论技术,提供技术支持. 后面会不定时为大家更新文章,敬请期待. 前端上传excel文件到后台,后台接收后保存数据到数据库. 这里需要说明的一点是前端 ...

  3. Delphi中对Excel表格文件的导入和导出操作。

    首先,Delphi要在Uses部分,把要使用的外部程序的类写入.在这里,我们把"ExtCtrls,ComObj"写入Uses部分. 将Listview列表中的数据导入到Excel文 ...

  4. 微信小程序云开发如何实现读取和下载excel文件导入数据到云数据库中?简单好理解

    一般我们在开发中会遇到通过excel文件一键导入数据的模板操作,我们在微信小程序中可以使用node-xlsx插件来解析excel文件的内容变成以json格式的数据返回. 在处理该操作的云函数中下载安装 ...

  5. Java生成和操作Excel文件

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  6. java jxl 文本文件_JXl(excel文件的读写操作)使用API(全)

    简单写了对excel写操作的demo: @Test public void creatExcel() throws IOException, RowsExceededException, WriteE ...

  7. Java解析xml文件dom4j篇(基于xml配置文件完成Excel数据的导入、导出功能完整实现)

    DOM4J解析XML文件 dom4j是一个Java的XML API,是jdom的升级产品,用来读写XML文件.另外对比其他API读写XML文件,dom4j是一个十分优秀的JavaXML API,具有性 ...

  8. java写excel_java写excel文件工具

    之前写过一个用java操作csv与excel文件的工具<操作CSV与EXCEL的工具>,它写入几十.几百行数据都没有问题.但如果写几万行,就有些吃力了,速度太慢.另外也没有抽出工具代码,与 ...

  9. java excel表格导入_Java实现Excel表格的导入和导出(一)

    多说两句:表格的导入导出,是比较常见的系统操作,一般涉及数据批量导入导出时会用到,以前遇到过的业务场景有批量添加会员信息,数据迁移等.实现工具,Apache的poi最为常见.实现简单,博客简单一记. ...

最新文章

  1. 利用“栈”解决“出轨”问题
  2. Unit Testing for WinForm
  3. 《多核与GPU编程:工具、方法及实践》----1.5 并行程序性能的预测与测量
  4. 组会PPT20200910《大工HPT放电结果错误剖析》
  5. 论坛高级签名_首届中国定制白酒高峰论坛在天津盘山举行
  6. 【课题总结】OpenCV 抠图项目实战(7)边缘检测
  7. 配置mysql复制基本步骤
  8. vue组件中传值遇到的一些问题
  9. 智慧电力信息化系统建设整体方案
  10. 在excel中如何筛选重复数据_EXCEL里如何快速统计重复的次数?
  11. 《宽带与接入网技术》接入网的基本概念
  12. untiy实现文本滚动
  13. 计算机二级Web考试真题题库 上机考试系统 大纲教材 考试课程 讲解视频
  14. PS初学者实例教程——图层样式的学习[斜面和浮雕]
  15. 数据可视化之excel和finebi报表实现对比
  16. [ARC120E]1D Party
  17. 透析阿里3亿元投资的如涵:孵化张大奕,吸金但苦逼
  18. windows MNN 的使用流程(Python版)
  19. maven到底是什么
  20. 解决Ubuntu 16.04 的应用商店卸载或加载不出来的教程

热门文章

  1. 【自然语言处理】Topic Coherence You Need to Know(主题连贯度详解)
  2. 测试开发进阶——常用中间件概念——JMX监听器理解
  3. linux THP概念
  4. [数字后端]LVT, RVT, HVT 的区别
  5. 天宇优配|机构看好养殖业景气持续,7家猪企明年净利润有望
  6. 给表格中的文字设置字体以及设置表格样式
  7. 如何方便有效的群发邮件,外贸公司群发邮件平台软件好用吗?
  8. 快来直播:互联网活动运营的14个步骤(上篇)
  9. 【程序人生】:看到商汤集团的招聘简章,感觉自己弱爆了
  10. 我的世界主流服务器模组,我的世界:4款百玩不厌的服务器模组大盘点 植物魔法借鉴崩坏2?...