POI之excel读写

两个企业级应用系统之间做数据交互的方式,如下:

WebService

HTTP POST

FTP

...

当然,这些方式都是建立在,网络互通的基础上.

也有一些应用系统部署局域网内,只允许浏览器访问,

此时,只能通过将系统A的数据导出,再导入系统B,相互约定数据格式.

在驾培系统中,我们会使用POI组件,将学员信息及学时信息,导入/导出为excel.

下面来实现POI的简单读写:

依赖包:

<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.8</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>3.8</version>
		</dependency>

注意:

HSSF:操作 excel 2003(.xls)

XSSF:操作 excel 2007以上(.xlsx)

创建excel文件

Workbook wb = new HSSFWorkbook();
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

创建工作表

Workbook wb = new HSSFWorkbook();
//创建工作表
Sheet sheet1 = wb.createSheet("new sheet");
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

读取数据:

//加载excel
//WorkbookFactory创建,通过文件名来选择HSSF还是XSSF
Workbook wb=WorkbookFactory.create(new File("test.xlsx"));
//获取工作表
Sheet sheet=wb.getSheetAt(0);
Row row=null;
for(int i=0;i<=sheet.getLastRowNum();i++){
	//获取行
	row=sheet.getRow(i);
	for(int j=row.getFirstCellNum();j<row.getLastCellNum();j++){
		//获取单元格
		Cell cell = row.getCell(j);
		//获取单元格的内容
		System.out.print(cell.getStringCellValue()+"\t");
	}
	System.out.println();
}

写数据:

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("kun");
//单元格样式
CellStyle style = wb.createCellStyle();
style.setBorderTop(CellStyle.BORDER_THICK);
style.setBorderRight(CellStyle.BORDER_THICK);
style.setBorderBottom(CellStyle.BORDER_THICK);
style.setBorderLeft(CellStyle.BORDER_THICK);
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
//创建行
Row row=sheet.createRow(0);
row.setHeightInPoints(30);
//创建单元格
Cell cell=row.createCell(0);
cell.setCellValue("id");
//设置单元格样式
cell.setCellStyle(style);
//创建单元格
cell=row.createCell(1);
cell.setCellValue("姓名");
//设置单元格样式
cell.setCellStyle(style);
FileOutputStream fileOut = new FileOutputStream("mydata.xls");
wb.write(fileOut);
fileOut.close();
时间: 2024-10-29 09:50:36

POI之excel读写的相关文章

java使用POI进行Excel读写

1 jar包下载 参考链接:http://www.cnblogs.com/gmq/archive/0001/01/01/1521496.html poi-3.7-20101029.jar和源码下载地址:http://pan.baidu.com/s/1sjNmnc5#path=%252F04technology%252F01J2EE%252Fjar 2 ExcelHelper类 package zjr.amy.excel; import java.io.BufferedInputStream; i

poi大数据读写excel

一.描述 前端时间写了注解方式Excel的读取和写入,它是根据注解完成Excel的操作,虽说支持大数据,但对于超大数据就无能为力了,因为它的读写期间都是将所有数据放入系统内存的,除非你有超大的内存. 因项目需要对超大数据的Excel读写操作,于是网上找了个超大数据的读写代码,这个不需要太大内存.并对此进行了简单的修改. 原理如下: Excel超大数据读取:抽象Excel2007读取器,excel2007的底层数据结构是xml文件,采用SAX的事件驱动的方法解析 xml,需要继承DefaultHa

使用Apache POI导出Excel小结--导出XLS格式文档

使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI导出Excel小结--导出XLSX格式文档 使用Apache POI导出Excel--大数量导出 导出XLS格式文档 做企业应用项目难免会有数据导出到Excel的需求,最近在使用其,并对导出Excel封装成工具类开放出来供大家参考.关于Apache POI Excel基本的概念与操作我在这里就不啰嗦

POI操作Excel

Excel简介 一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作表sheet,而一个工作表中包含多个单元格Cell,这些单元格都是由列(Column)行(Row)组成,列用大写英文字母表示,从A开始到Z共26列,然后再从AA到AZ又26列,再从BA到BZ再26列以此类推.行则使用数字表示,例如:A3 表示第三行第一列,E5表示第五行第五列. POI工具包 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 9

java使用POI操作excel文件,实现批量导出,和导入

一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel. POI全称 Poor Obfuscation Implementation,直译为"可怜的模糊实现",利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:htt

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

需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </depen

JAVA的POI操作Excel

1.1Excel简介 一个excel文件就是一个工作簿workbook,一个工作簿中可以创建多张工作表sheet,而一个工作表中包含多个单元格Cell,这些单元格都是由列(Column)行(Row)组成,列用大写英文字母表示,从A开始到Z共26列,然后再从AA到AZ又26列,再从BA到BZ再26列以此类推.行则使用数字表示,例如:A3 表示第三行第一列,E5表示第五行第五列. 1.2 POI工具包 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Exce

POI操作EXCEL(二)

原文转自:http://www.tqcto.com/article/code/295025.html java当初把核心处理设成Unicode,带来的好处是另代码适应了多语言环境.然而由于老外的英语只有26个字母,有些情况下,一些程序员用8 位的byte处理,一不小心就去掉了CJK的高位.或者是由于习惯在程序中采用硬编码,还有多种原因,使得许多java应用在CJK的处理上很烦恼.还好 在POI HSSF中考虑到这个问题,可以设置encoding为双字节. POI可以到www.apache.org

Jsoup抓取、解析网页和poi存取excel综合案例——采集网站的联系人信息

需求:采集网站中每一页的联系人信息 一.创建maven工程,添加jsoup和poi的依赖包 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.16-be