Java 使用 POI 对 Excel文件 进行读写操作

一、背景

目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对Excel表进行读写操作。经过了解后选择了 POI 技术,这个 POI项目是Apache(POI链接)下面的一个项目,用于处理Excel和Java的数据对接操作。

更好地阅读体验,请移步我的个人博客。

二、使用方法

2.1 Excel 文档结构

对于 Excel 我们并不陌生,它是 Microsoft 公司下的一款表格处理软件。一个Excel文件的结构层次是:Excel工作簿(也就是我们说的Excel文件) -> 工作表 -> 单元格(一行一列组成一个单元格)。我们通常使用Excel的步骤,总是 新建一个Excel文件,然后建立一个工作表,然后再向工作表中的单元格写入数据。

2.2  POI对象介绍

Excel文件的结构层次,对应了POI的几个对象,分别是HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell。通过这几个对象,我们就可以处理Excel数据了。一般流程是:首先,新建一个HSSFWorkbook,然后建立一个或者多个HSSFSheet,然后再建立一个或者多个HSSFRow,最后建立一个或者多个HSSFCell。

2.3  写入数据

// 写入数据
public static void poiWrite() {//新建 Excel工作簿对象HSSFWorkbook workbook = new HSSFWorkbook();//新建工作表HSSFSheet sheet = workbook.createSheet("test");//建立表格的行HSSFRow rHssfRow = sheet.createRow(0);//建立表格的列,这样行列数据有了,就确定了一个单元格,可以写入数据了HSSFCell cell = rHssfRow.createCell(0);cell.setCellValue("姓名");//写入到具体的文件数据中FileOutputStream xlsStream = null;try {xlsStream = new FileOutputStream(new File("C:\\Users\\itour\\Desktop\\poiTest.xls"));workbook.write(xlsStream);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if (xlsStream != null) {try {xlsStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}

2.4  读取数据

// 读取数据
public static void poiRead() {FileInputStream xlsStream = null;try {// Excel工作簿 输入流xlsStream = new FileInputStream(new File("C:\\Users\\itour\\Desktop\\poiTest.xls"));// 构造工作簿对象HSSFWorkbook hssfWorkbook = new HSSFWorkbook(xlsStream);// 获取工作表,这里获取的是第一个sheet,// 如果一个工作薄对象有多个sheet的话,就需要遍历获取多个HSSFSheet sheetAt = hssfWorkbook.getSheetAt(0);// 获取行,行号作为参数传递给getRow方法HSSFRow row = sheetAt.getRow(0);// 获取单元格,row已经确定了行号,列号作为参数传递给getCell,就可以获得相应的单元格了HSSFCell cell = row.getCell(0);// 获取单元格的值String cellValue = cell.getStringCellValue();System.out.println("获取到的数据是:" + cellValue);} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {if (xlsStream != null) {try {xlsStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}

结果如下图:

三、说明

1,上面只是一个最简单的案例,如果想要了解进一步的操作,可以查看官方文档。

2,POI 可以对 Excel 数据进行基本的格式美化,例如 我们可以设置标题和单元格等的格式样式 ,以满足我们的需求。

Java 使用 POI 对 Excel文件 进行读写操作相关推荐

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

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

  2. 利用java poi对excel表的读写操作

    2019独角兽企业重金招聘Python工程师标准>>> 利用java poi对excel表的读写操作 POI简介: Apache POI是一种流行的API,它允许程序员使用Java程 ...

  3. java使用poi生成Excel文件并合并单元格

    java使用poi生成Excel文件并合并单元格        业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...

  4. java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

    首先,引入所需的jar包: 如果是maven管理项目的jar包,只需在pom.xml中加上: [html] view plaincopy <!-- https://mvnrepository.c ...

  5. Java使用POI读取Excel文件

    上篇文章记录了简单的POI创建Excel文件,依赖导入可参考上篇 POI读取excel中公式 @Testpublic void testRead() throws Exception {//读取文件的 ...

  6. 18 - csv与Excel文件的读写操作

    Day 18 补充:虚拟环境 1.系统环境: 安装Python就可以为计算机提供一个python的体统环境 2.虚拟环境 程序员根据自己的需要创建的Python环境 能够提供虚拟环境的前提:存在系统环 ...

  7. python对Excel文件的读写操作

    xlrd模块 读excel文件 .xls xlwt模块 写excel文件 .xls openpyxl模块 写和追写 安装第三方模块 xlrd xlwt openpyxl 安装方式一:使用pip命令安装 ...

  8. java使用poi对excel文件的加密解密

    1.首先pom文件引入poi包,如下: <?xml version="1.0" encoding="UTF-8"?> <project xml ...

  9. java使用poi给excel文件插入数据

    excel模板文件 代码 package com.example.demo;import java.io.File; import java.io.FileInputStream; import ja ...

最新文章

  1. 指定域的名称或安全标识(SID)与该域的信任信息不一致
  2. LNMP环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)
  3. Spring Security(18)——Jsp标签
  4. 隐藏UITableView当没有数据或数据不够的时候出现的分割线.
  5. React中路由组件与一般组件
  6. 阿里云服务器重启后无法访问的解决
  7. java趣事_【趣事】Java程序员最年轻,C++程序员最年老
  8. python会计实证研究_描述性统计分析在实证研究中的作用及具体软件实现——以SPSS为例...
  9. 五个免费UML建模工具推荐
  10. Bootstrap精巧布局
  11. activemq和kafka的区别
  12. HTTP之Range
  13. 没有U盘纯硬盘安装linux之manjaro
  14. java poi excel转pdf_java_poi导入导出excel.pdf
  15. 在FPGA中,同步信号、异步信号和亚稳态的理解
  16. Android WebView 无法下载文件的问题
  17. python实现华氏温度和摄氏温度转换
  18. matlab 指纹,一种基于matlab的指纹识别方法
  19. 微信开发之使用java获取签名signature
  20. win10能联网但右下角出现小地球,无Internet连接解决方法

热门文章

  1. 学习笔记---Web服务、Remoting、WCF (上) --- Web服务
  2. 微程序控制器的组成及原理总结
  3. 先验信息,先验概率,先验分布,后验概率,后验分布,共轭分布,共轭先验分布
  4. Tensorflow 中添加正则化项
  5. 微信小程序-滚动消息通知
  6. codeforces round #257 div2 C、D
  7. python中如何判断一个变量的数据类型?(原创)
  8. [转]ORACLE联机日志文件无故全部消失
  9. MyBatis集成SpringMVC
  10. 在Java中应用函数式编程请小心!