前些日子把JXL替换为ApachePOI,原因很简单,JXL在2009年10月已经停止更新,并且不支持Excel 2007 OOXML (.xlsx)格式的文件。事实上把JXL与POI进行比较并不公平,因为JXL只能够操作OLE2格式的Excel(即.xls),而POI则是能够读写xls(x)、doc(x)、ppt(x)的一整套解决方案。
不同版本Excel的行列数限制:
+-----------------+-----------+--------------+---------------------+ | | Max. Rows | Max. Columns | Max. Cols by letter | +-----------------+-----------+--------------+---------------------+ | Excel 365* | 1,048,576 | 16,384 | XFD | | Excel 2013 | 1,048,576 | 16,384 | XFD | | Excel 2010 | 1,048,576 | 16,384 | XFD | | Excel 2007 | 1,048,576 | 16,384 | XFD | | Excel 2003 | 65,536 | 256 | IV | | Excel 2002 (XP) | 65,536 | 256 | IV | | Excel 2000 | 65,536 | 256 | IV | | Excel 97 | 65,536 | 256 | IV | | Excel 95 | 16,384 | 256 | IV | | Excel 5 | 16,384 | 256 | IV | +-----------------+-----------+--------------+---------------------+
*Excel 365 unverified.
JXL - JExcelApi
最后更新:Oct 24,2009
<dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </dependency>
JXL是一个日本人写的简单类库。作者主页。POI和jxl.jar性能比较一贴中提到其性能较poi更高,内存消耗更少。当且仅当目标文档是行数接近但不超过65536的xls格式时成立。
类图:
public static void main(String[] args) { try { // create writable wookbook WritableWorkbook workbook = Workbook.createWorkbook(new File("jxlOutput.xls")); // create writable sheet WritableSheet sheet = workbook.createSheet("First Sheet", 0); for(int i = 0; i < data.length; i++) { for(int j = 0; j < data[i].length; j++){ // create a cell at position (i, j) and add to the sheet Label label = new Label(i, j, data[i][j]); sheet.addCell(label); } } workbook.write(); workbook.close(); } catch (IOException | WriteException e) { e.printStackTrace(); } }
Apache POI
最后更新:Dec 17,2014
类图:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.10.1</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency>
Apache POI API的一些重点:
- Apache POI包含 Excel 97(-2007)文件格式(.xls)的Java实现 – HSSF。(彩蛋:H指Horrible)
- Apache POI包含 Excel 2007 OOXML文件格式(.xlsx)的Java实现 – XSSF。
- Apache POI的HSSF和XSSF API提供了读写和修改Excel电子表格的功能。
- Apache POI也提供了SXSSF API(流式XSSF),它是XSSF的扩展,用于写入非常大的excel文件。SXSSF API需求较小的内存,适用于在堆内存受限时处理较大excel文件的情况。
- 可以选择两种模型:Event Model和User Model。Event Model需求较小的内存,流式读取并处理每个单元;User Model更具备面向对象的特征,方便操作。
- Apache POI提供了对excel附加功能的完美支持,如公式、单元格样式、颜色、字体、数据验证、图像和超链接等。
SpreadSheet API 功能摘要:
以下是两个基于XSSF读写xlsx文件的例子:
OpenCSV:
CSV文件以纯文本形式存储表格数据(数字和文本)。OpenCSV是一个用于读写CSV文件的简单Java类库。 Maven Repo
最近更新:Jul 28,2011
<dependency> <groupId>net.sf.opencsv</groupId> <artifactId>opencsv</artifactId> <version>2.3</version> </dependency>
OpenCSV将CSV文件中的每一行读取为一个String数组。相应地,写文件时通过csvWriter.writeNext(array)把String数组内容作为一行写入CSV文件
读写CSV文件的例子:
References:
1. POI-HSSF and POI-XSSF - Java API To Access Microsoft Excel Format Files
2. Java Read/Write Excel File using Apache POI API
Original Link: http://cwind001.github.io/blog/2015/02/27/apachepoi/
相关推荐
本文将深入探讨两种常用的Java库:Apache POI和JXL,它们都提供了处理Excel文件的能力。 Apache POI是Apache软件基金会的一个开源项目,它提供了一个强大的API,允许Java开发者读取、写入和修改Microsoft Office...
本文将深入探讨Java编程语言中如何使用Apache POI库和JExcelAPI(JXL)来读取、写入及操作Excel文件,同时也包括设置列宽以及处理合并或拆分的单元格内容。 首先,Apache POI是Apache软件基金会的一个开源项目,专...
本文将对比两种主流的Java Excel处理库:jxl和Apache POI,并探讨它们的特性和适用场景。 首先,jxl是较早的Java Excel处理库,主要用于读写Excel 97-2003格式的.XLS文件。它的API简洁,易于上手,对于简单的读写...
在Java中,读取和操作Excel文件是常见的需求,这通常涉及到使用库,如Apache POI和JXL。这两个库都允许开发者在Java中方便地读取、写入和修改Excel文件。 Apache POI是一个强大的库,专门用于处理Microsoft Office...
### POI与JXL实战性能对比分析 #### JXL与POI概述 在日常工作中,尤其是在处理Excel文件时,我们通常会面临选择合适的Java库来完成任务的问题。JXL和POI是两个广泛使用的库,它们各有优势和局限性。 **JXL...
本文将详细介绍如何利用Java编程语言结合JXL和Apache POI库来实现给Excel文档添加动态水印的功能。 #### 技术栈介绍 - **JXL**: 是一个用于读写Excel文件的Java库,支持多种Excel版本,包括.xls格式。 - **Apache ...
Apache POI和jxl是两个非常知名的库,用于在Java环境中解析和生成Excel文件。 Apache POI是Apache软件基金会的一个开源项目,它提供了API来处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。Apache POI...
Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件。下面将详细阐述这两个库以及如何使用它们来生成Excel报表。 Apache POI 是一个...
Apache POI与JXL:Excel导入导出的深入解析 在Java编程中,处理Microsoft Excel文件是一项常见的任务,Apache POI和JXL是两个广泛使用的库,分别提供了强大的功能来读取、写入和操作Excel文件。这两个库使得开发者...
- Java POI 是 Apache 软件基金会的一个开源项目,它提供了一套API,允许Java程序读写Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。 - POI 提供了 HSSF 和 XSSF 两个主要的子项目,分别用于处理老版本...
通过以上资源,开发者可以深入学习如何利用Java的jxl和Apache POI库进行Excel操作,从而提高工作效率,实现数据的高效管理和分析。无论你是要创建新的报表,还是从现有文件中提取数据,这些工具和知识都能为你提供...
此时,开发者通常会借助编程语言来实现自动化操作,Java中就有两个常用的库,即JXL和Apache POI,用于读写Excel文件。下面我们将详细探讨这两个库以及如何使用它们生成Excel导出。 1. **JXL库**: JXL是Java Excel...
总结来说,Java中的JXL和Apache POI都是强大的工具,它们让你能够灵活地处理Excel文件。JXL适合简单的需求,而Apache POI则更适合需要处理复杂Excel特性的场景。通过学习和实践这些库提供的API,你可以轻松地完成...
JXL和Apache POI是两个流行的Java库,专门用于读取、写入和操作Excel文件。下面将详细介绍这两个库以及如何利用它们实现Excel的导入导出功能。 ### JXL JXL(Java Excel API)是一个轻量级的Java库,它提供了读取...
Java作为一款流行的企业级开发语言,提供了多种工具来操作Excel文件,其中最为常用的当属Apache POI与JXL这两个开源库。 #### 二、Apache POI简介 Apache POI是一个用于读写Microsoft Office格式文件的Java API,...
标题“非常简洁的java读写EXCEL源代码”以及描述中提到的“非常简单,还赠送个JXL的包”都暗示了我们将讨论如何使用JXL库进行Excel操作。 首先,让我们来了解JXL库。JXL是一个开源的Java库,用于读写Microsoft ...
本文将详细介绍如何使用Java的两个库,jxl和Apache POI,来实现单个和多个工作簿的Excel导出。 首先,我们来看jxl库。jxl是Java Excel API的简称,它允许Java程序读写Excel文件。在单个工作簿的导出中,jxl库提供了...
Java读写Excel是Java开发中常见的一项任务,特别是在数据处理...在不断发展的Java生态中,选择合适的Excel处理库是一项重要决策,根据项目需求和性能考虑,选择JXL、Apache POI或其他库,都是提升工作效率的有效途径。
然而,需要注意的是,jxl并不支持最新的.XLSM或.OOXML格式,对于这些格式,可能需要使用Apache POI库。 要开始使用jxl,首先需要在项目中引入jxl.jar。这可以通过在项目的类路径中添加该jar文件,或者在Maven或...
在Android平台上,处理Excel文件通常涉及使用第三方库,如Apache POI和JXL。这两个库都是Java编程语言的库,可以用于读写Microsoft Office格式的文件,包括Excel工作簿(.xls和.xlsx)。Apache POI是更为现代和功能...