Excel是我們平時工作中比較常用的用於存儲二維表數據的,JAVA也可以直接對Excel進行操作,在這篇博客中將為大家介紹兩種操作Excel的方式,分別為:jxl和poi。

對於兩者的區別網上有測試如下:

測試結果

類型   數據量(行)   執行時間(ms)   執行時間(ms)   執行時間(ms)   平均時間(ms)

POI   1000       579       562       532       558

JXL   1000       500       469       484       484

POI   5000       984       984       969       979

JXL   5000       922       860       890       891

POI   10000      1609      1594      1641       1615

JXL   10000        1437      1453      1406       1432

POI   30000      3782      3765      3828       3792

JXL   30000      3922      3906      3922       3917

POI   50000      5953      6484      5859       6099

JXL   50000      6765      7421      6984       7057

在小數據量時jxl快於poi,在大數據量時poi要快於jxl。但差距都不明顯。

(一)jxl

寫Excel

importjava.io.File;importjava.io.IOException;importjxl.Workbook;importjxl.write.Label;importjxl.write.WritableSheet;importjxl.write.WritableWorkbook;importjxl.write.WriteException;/*** jxl寫Excel

*

*@authorjianggujin

**/

public classJxlWriteDemo

{public static void main(String[] args) throwsIOException, WriteException

{

File xlsFile= new File("jxl.xls");//創建一個工作簿

WritableWorkbook workbook =Workbook.createWorkbook(xlsFile);//創建一個工作表

WritableSheet sheet = workbook.createSheet("sheet1", 0);for (int row = 0; row < 10; row++)

{for (int col = 0; col < 10; col++)

{//向工作表中添加數據

sheet.addCell(new Label(col, row, "data" + row +col));

}

}

workbook.write();

workbook.close();

}

}

讀Excel

importjava.io.File;importjava.io.IOException;importjxl.Sheet;importjxl.Workbook;importjxl.read.biff.BiffException;/*** jxl讀excel

*

*@authorjianggujin

**/

public classJxlReadDemo

{public static void main(String[] args) throwsBiffException, IOException

{

File xlsFile= new File("jxl.xls");//獲得工作簿對象

Workbook workbook =Workbook.getWorkbook(xlsFile);//獲得所有工作表

Sheet[] sheets =workbook.getSheets();//遍歷工作表

if (sheets != null)

{for(Sheet sheet : sheets)

{//獲得行數

int rows =sheet.getRows();//獲得列數

int cols =sheet.getColumns();//讀取數據

for (int row = 0; row < rows; row++)

{for (int col = 0; col < cols; col++)

{

System.out.printf("%10s", sheet.getCell(col, row)

.getContents());

}

System.out.println();

}

}

}

workbook.close();

}

}

(二)poi

寫Excel

importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importorg.apache.poi.hssf.usermodel.HSSFRow;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;/*** Poi寫Excel

*

*@authorjianggujin

**/

public classPoiWriteDemo

{public static void main(String[] args) throwsIOException

{//創建工作薄

HSSFWorkbook workbook = newHSSFWorkbook();//創建工作表

HSSFSheet sheet = workbook.createSheet("sheet1");for (int row = 0; row < 10; row++)

{

HSSFRow rows=sheet.createRow(row);for (int col = 0; col < 10; col++)

{//向工作表中添加數據

rows.createCell(col).setCellValue("data" + row +col);

}

}

File xlsFile= new File("poi.xls");

FileOutputStream xlsStream= newFileOutputStream(xlsFile);

workbook.write(xlsStream);

}

}

讀Excel

importjava.io.File;importjava.io.IOException;importorg.apache.poi.openxml4j.exceptions.InvalidFormatException;importorg.apache.poi.ss.usermodel.Row;importorg.apache.poi.ss.usermodel.Sheet;importorg.apache.poi.ss.usermodel.Workbook;importorg.apache.poi.ss.usermodel.WorkbookFactory;/*** Poi寫Excel

*

*@authorjianggujin

**/

public classPoiReadDemo

{public static void main(String[] args) throwsIOException,

InvalidFormatException

{

File xlsFile= new File("poi.xls");//獲得工作簿

Workbook workbook =WorkbookFactory.create(xlsFile);//獲得工作表個數

int sheetCount =workbook.getNumberOfSheets();//遍歷工作表

for (int i = 0; i < sheetCount; i++)

{

Sheet sheet=workbook.getSheetAt(i);//獲得行數

int rows = sheet.getLastRowNum() + 1;//獲得列數,先獲得一行,在得到改行列數

Row tmp = sheet.getRow(0);if (tmp == null)

{continue;

}int cols =tmp.getPhysicalNumberOfCells();//讀取數據

for (int row = 0; row < rows; row++)

{

Row r=sheet.getRow(row);for (int col = 0; col < cols; col++)

{

System.out.printf("%10s", r.getCell(col).getStringCellValue());

}

System.out.println();

}

}

}

}

java excel 操作方式_java excel兩種操作方式相关推荐

  1. java excel 透视_Java Excel透视表相关操作实现代码

    概述 透视表是依据已有数据源来创建的交互式表格,我们可在excel中创建透视表,也可编辑已有透视表. 所需工具:Free Spire.XLS for Java免费版,编辑代码前,先下载导入jar到Ja ...

  2. java sheet类_java excel 导出 多个sheet

    展开全部 以下代码仅供参考: //生成一个excel文件 WritableWorkbook wwb = null; try { //首先要使用Workbook类的工厂方法创建一个可写入62616964 ...

  3. java 报表导出_Java Excel报表导出Demo

    /*** 一级权限数据导出 *@return */@RequestMapping(value= "/getExportData", method =RequestMethod.GE ...

  4. java excel工程_java工程積累——向office致敬:有一種依賴叫excel

    不知道大家有沒有這種感覺?我們做的軟件,越來越像office中的某一款軟件!這樣的感覺,還不止一次,如果你有過,咱們今天就一起致敬office,如果沒有,太好了,你應該來看看,因為你肯定馬上就會有! ...

  5. java导出为excel文件_java导出数据到excel文件

    有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...

  6. java代码_Java:java五行代码实现Excel的快速导出

    通过Java进行excel导出,听着似乎有那么一点点的意思,也貌似很简单的样子(实事也很简单),究竟该怎么操作呢?但是如何进行操作呢,先看代码 再看效果 EasyExcel 本案例用到的框架是阿里推出 ...

  7. cpu java poi 导出_java基于poi导出excel透视表代码实例

    这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通 ...

  8. java poi 读取excel 编码_Java使用POI 读取和写入Excel指南

    做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求:网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0. ...

  9. java 导出excel教程_Java导出Excel表格

    Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...

  10. Java面试poi中excel版本大小_java 中 poi解析Excel文件版本问题解决办法

    java 中 poi解析Excel文件版本问题解决办法 发布时间:2020-10-02 03:46:15 来源:脚本之家 阅读:91 作者:程诺 poi解析Excel文件版本问题解决办法 poi解析E ...

最新文章

  1. 转载知乎上的一篇:“ 面向对象编程的弊端是什么?”
  2. 1069 The Black Hole of Numbers
  3. UPS故障案例集(一)
  4. Python中type()详解:动态创建类
  5. SpringBoot注解大全
  6. 在计算机系统中引入通道结构,第5-6章习题讲解.doc
  7. Redis集群客户端添加数据报错(error) CLUSTERDOWN The cluster is down
  8. java注解和反射学习
  9. Visual Studio 2017版本15.9现在可用
  10. JAVA中public protected default private访问权限
  11. 【威联通Nas】安装docker版本的wiznote/wizserver
  12. Excel高级使用技巧汇总
  13. 风力摆?这是不是太简单了点
  14. SwiftUI 绘制刻度时钟表盘(自定义组件教程含源码)
  15. Adobe Acrobat XI经验总结(更于2022.5.11)
  16. Ubuntu出现 recovering journal ; /dev/sda1: clean, ***/*** files, ***/*** blocks 等信息无法开机的问题
  17. ZABBIX短信告警-创蓝短信平台
  18. 聪明如我,一眼就看穿了快递小哥的分堆算法
  19. python计算协方差矩阵_协方差矩阵、相关系数矩阵的EXCEL和python实现
  20. 【愚公系列】2023年02月 WMS智能仓储系统-018.收获管理和发货管理(完结篇)

热门文章

  1. Linux下使用QQ和查看QQ空间
  2. 20191221每日一句
  3. 黑马程序员传智播客 python 迭代器学习笔记
  4. 190817每日一句
  5. 190325每日一句
  6. Atitit 网络存储协议 远程存储协议 目录 1. Email类 1 1.1. Eas Exchange Activesync介绍 1 1.2. Imap pop3 1 2. 网盘类远程存储web
  7. Atitit 架构之道 attilax著 1. 架构的目的是什么??提高架构可读性。。提高扩展性。。对兼容性也有一定提升。。 3 1.1. 伸缩性架构设计 3 1.2. 提升性能架构 3 1.3.
  8. atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect
  9. 2019年贝莱德13亿美元收购另类投资服务商eFront
  10. (转)SegWit 与 Lightning Network