在企业级应用开发中,Excel报表是一种最多见的报表需求。Excel报表开发通常分为两种形式:java
一、为了方便操做,基于Excel的报表批量上传数据apache
二、经过java代码生成Excel报表。框架
Java中常见的用来操做Excl的方式通常有2种:JXL和POI。xss
JXL只能对Excel进行操做,属于比较老的框架,它只支持到Excel 95-2000的版本。如今已经中止更新和维护。maven
POI是apache的项目,可对微软的Word,Excel,Ppt进行操做,包括office2003和2007,Excl2003和2007。poi如今一直有更新。因此如今主流使用POI。工具
Apache POI是Apache软件基金会的开源项目,由Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java语言操做Microsoft Office的功能。测试
Apache POI是目前最流行的操做Microsoft Office的API组件,借助POI能够方便的完成诸如:数据报表生成,数据批量上传,数据备份等工做。spa
建立项目poi_demoexcel
添加依赖code
编写测试类,实现导出excel、导入excel
1.建立项目poi_demo
2.添加依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yk</groupId> <artifactId>poi_demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </project>
3.编写测试类,实现导出excel、导入excel
package com.yk.test;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.junit.Test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class TestPoi { @Test//导出Excel public void TestWrite() throws IOException { //1.工做簿 Workbook wb = new XSSFWorkbook(); //2.工做单 Sheet sheet = wb.createSheet("货物清单"); //3.行 Row row = sheet.createRow(0); //4.列 Cell cell = row.createCell(0); cell.setCellValue("生产厂家"); Cell cell2 = row.createCell(1); cell2.setCellValue("货号"); Cell cell3 = row.createCell(2); cell3.setCellValue("数量"); wb.write(new FileOutputStream("d:/test.xlsx")); } @Test//读取Excel public void TestRead() throws IOException { //1.工做簿 Workbook wb = new XSSFWorkbook(new FileInputStream("d:/test.xlsx")); //2.工做单 Sheet sheet = wb.getSheet("货物清单"); //3.行 Row row = sheet.getRow(0); //4.列 System.out.println(row.getCell(0).getStringCellValue()); System.out.println(row.getCell(1).getStringCellValue()); System.out.println(row.getCell(2).getStringCellValue()); }}