easyexcel和poi对比_POI和EasyExcel的使用

1.POI使用

1.1 什么是POI

POI简介(Apache POI),Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

HSSF - 提供读写Microsoft Excel格式档案的功能。(.xls)

XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。(.xlsx)

HWPF - 提供读写Microsoft Word格式档案的功能。

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF - 提供读写Microsoft Visio格式档案的功能。

1.2 官网

官网可以找到文档和每个版本的下载地址

2.xls写-03和07

2.1、创建项目

1、创建一个普通的maven项目

项目名:excel_poi

2、pom中引入xml相关依赖

org.apache.poi

poi

3.9

org.apache.poi

poi-ooxml

3.9

joda-time

joda-time

2.10.1

junit

junit

4.12

2.2、xls写-03和07的区别

区别1.格式不一样,03是xls,07是xlsx。

区别2:别的没啥区别。

1、03

public class ExcelWriteTest {

@Test

public void testWrite03() throws IOException {

// 创建新的Excel 工作簿

Workbook workbook = new HSSFWorkbook();

// 在Excel工作簿中建一工作表,其名为缺省值 Sheet0

//Sheet sheet = workbook.createSheet();

// 如要新建一名为"会员登录统计"的工作表,其语句为:

Sheet sheet = workbook.createSheet("会员登录统计");

// 创建行(row 1)

Row row1 = sheet.createRow(0);

// 创建单元格(col 1-1)

Cell cell11 = row1.createCell(0);

cell11.setCellValue("今日人数");

// 创建单元格(col 1-2)

Cell cell12 = row1.createCell(1);

cell12.setCellValue(666);

// 创建行(row 2)

Row row2 = sheet.createRow(1);

// 创建单元格(col 2-1)

Cell cell21 = row2.createCell(0);

cell21.setCellValue("统计时间");

//创建单元格(第三列)

Cell cell22 = row2.createCell(1);

String dateTime = new DateTime().toString("yyyy-MM-dd HH:mm:ss");

cell22.setCellValue(dateTime);

// 新建一输出文件流(注意:要先创建文件夹)

FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write03.xls");

// 把相应的Excel 工作簿存盘

workbook.write(out);

// 操作结束,关闭文件

out.close();

System.out.println("文件生成成功");

}

}

2 、07

@Test

public void testWrite07() throws IOException {

// 创建新的Excel 工作簿

Workbook workbook = new XSSFWorkbook();

......

// 新建一输出文件流(注意:要先创建文件夹)

FileOutputStream out = new FileOutputStream("d:/excel-poi/test-write07.xlsx");

......

}

2.3、大文件写-HSSF、XSSF和SXSSF

1、使用HSSF

缺点:最多只能处理65536行,否则会抛出异常

java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535)

优点:过程中写入缓存,不操作磁盘,最后一次性写入磁盘,速度快

@Test

public void testWrite03BigData() throws IOException {

//记录开始时间

long begin = System.currentTimeMillis();

//创建一个SXSSFWorkbook

Workbook workbook = new HSSFWorkbook();

//创建一个sheet

Sheet sheet = workbook.createShee

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值