您的位置:首页 > 编程语言 > Java开发

JAVA使用POI读、写Excel文件

2018-03-30 15:22 295 查看

JAVA使用POI读、写Excel文件

01.前言

当前使用比较多的读取Excel文件API就是POI和JXL。

JXL(Java Excel API) 官网地址:http://jexcelapi.sourceforge.net/

Apache的POI(Poor Obfuscation Implementation)官网地址:http://poi.apache.org/

POI支持微软的OLE2格式文件Office 2003及以下版本;同时支持微软的OOXML(Office Open XML)标准,也就是Office 2007以上版本。JXL只能实现对Excel 2003以下版本的支持。

POI使用HSSF对象操作OLE2格式Excel,文件后缀为.xls的;使用XSSF、SXSSF对象操作OOXML格式Excel,文件后缀为.xlsx的。对于OLE2版本的Excel,一个Sheet工作表它的行最多支持到65536行,列支持到256列;对于OOXML版本的Excel,一个Sheet工作表它的行支持到1048576行,列支持到16384列。

02.POI的使用

02.1.所需要的jar包

jar包下载地址:https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.17-20170915.tar.gz

本程序使用jar包:poi-3.17.jar poi-ooxml-3.17.jar poi-ooxml-schemas-3.17.jar xmlbeans-2.6.0.jar

02.2.写数据到Excel

@Test
public void writeExcel() throws Exception {
//创建工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
//创建工作表
XSSFSheet sheet = workbook.createSheet();
//创建行
XSSFRow row = sheet.createRow(2);
//创建单元格,操作第三行第三列
XSSFCell cell = row.createCell(2,CellType.STRING);
cell.setCellValue("hellword");
//
FileOutputStream outputStream = new FileOutputStream(new File("test.xlsx"));
workbook.write(outputStream);
//关闭工作簿
workbook.close();
}


其结果就是就内容“hellword” 写到当前工程的test.xlsx文件的第三行第三列中,如图:



02.03.读Excel数据

@Test
public void readExcel() throws Exception {
//打开需要读取的文件
FileInputStream inputStream = new FileInputStream(new File("text.xlsx"));
//读取工作簿
XSSFWorkbook wordBook = new XSSFWorkbook(inputStream);
//读取工作表,从0开始
XSSFSheet sheet = wordBook.getSheetAt(0);
//读取第三行
XSSFRow row = sheet.getRow(2);
//读取单元格
XSSFCell cell = row.getCell(2);//获取单元格对象
String value = cell.getStringCellValue();
System.out.println(value);
//关闭输入流
inputStream.close();
//关闭工作簿
wordBook.close();
}


结果如图:



03.补充

一些常用操作:

新建工作簿:

HSSFWorkbook wb = new HSSFWorkbook();

打开工作簿:

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(xlsFile));

建立新的sheet对象:

HSSFSheet sheet = wb.createSheet(“我的第一个工作簿”);

选择第一个工作簿:

HSSFSheet sheet = wb.getSheetAt(0);

设置工作簿的名称:

wb.setSheetName(0, “我的第一个工作簿”);

创建行对象:

HSSFRow nRow = null;

nRow = sheet.createRow(1); //第2行

指定列 创建单元格对象:

HSSFCell nCell = null;

nCell = nRow.createCell((short)(2)); //第3列

指定列 创建单元格对象:

nCell.setCellValue(“我是单元格”);

设置样式 注意:样式不能重复设置

nCell.setCellStyle(leftStyle(wb));

本程序所需要的jar包:链接:https://pan.baidu.com/s/1Canvtaxvk06VHB4g2d8SNw 密码:ev38

具体使用可参照:https://poi.apache.org/spreadsheet/index.html

对于junit的使用可以参照博主的另外一篇博客。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: