博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 使用 POI 对 Excel文件 进行读写操作
阅读量:3715 次
发布时间:2019-05-21

本文共 2374 字,大约阅读时间需要 7 分钟。

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

一、背景

         目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对Excel表进行读写操作。经过了解后选择了 POI 技术,这个 POI项目是Apache()下面的一个项目,用于处理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 block		e.printStackTrace();	}finally {		if (xlsStream != null) {			try {				xlsStream.close();			} catch (IOException e) {				// TODO Auto-generated catch block				e.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 block		e.printStackTrace();	} catch (IOException e) {		// TODO Auto-generated catch block		e.printStackTrace();	}finally {		if (xlsStream != null) {			try {				xlsStream.close();			} catch (IOException e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}	}}

结果如下图:

三、说明

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

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

转载地址:http://vyajn.baihongyu.com/

你可能感兴趣的文章
C/C++编程题 输入学号,输出学号的后三位,并输出并求出0到后三位之前数的和
查看>>
C++ 知识要点
查看>>
C/C++课程设计 新生入学管理系统(二)
查看>>
Java练习题(一) 自定义多个字符和数字,求出6位随机数的组合
查看>>
Java练习题(二)求出一个文件的目录名以及目录总个数
查看>>
Java类名.方法和变量
查看>>
Java小案例(二) 用数组实现增删查改排序
查看>>
Java小案例(一) 用数组实现登录注册、增加职工并查看信息
查看>>
有趣的一行代码
查看>>
Java函数式编程和面向对象编程
查看>>
Java中List、Map、Set三个接口,存取元素时,各有什么特点?
查看>>
客户端与服务器(C/S架构与B/S架构)、AJax学习
查看>>
jsp中String path = request.getContextPath()的作用
查看>>
登录界面验证码的实现
查看>>
EL表达式
查看>>
Javaweb MVC设计模式、Modle发展史、项目分层和三层架构
查看>>
HTML表格和HTML表单
查看>>
JSP访问数据库,Session对象和九大内置对象
查看>>
Springboot分层图解
查看>>
并查集(Disjiont Set)
查看>>