由于现存的Excel(07)解析API 只有apache 的poi能够使用,但是如果文件过于庞大,poi解析就有问题了,占用很大的内存
而且速度很慢,我们自己写了一个解析07版Excel的程序,有兴趣的朋友可以看看,很简单,效率还不错
解析的代码见附件 :07Excel_source_code.zip
下面是使用的代码:
1.验证是否是07+版excel(07版以上的excel构造相同) 代码在07Excel_source_code.zip下excel包的 ExcelUtils.java
/**
* Excel 2007+ using the OOXML format(actually is a zip)
*
* @return
*/
public static boolean isOOXML(InputStream inputStream) {
try {
return inputStream.read() == 0x50 && inputStream.read() == 0x4b
&& inputStream.read() == 0x03 && inputStream.read() == 0x04;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
2.通过上面的方法进行判断 (03版直接用jxl进行解析) 这里只讲解07+版的解析方式
public List<CommonChatObject> readExcel() {
List<ObjectList > list = new LinkedList<ObjectList >();
SimpleXLSXWorkbook workbook = new SimpleXLSXWorkbook(this.file); //传入你要解析的07Excel文件(假设该文件只有两列 id,name)
Sheet sheet = workbook.getSheet(0);
List<Cell[]> rows = sheet.getRows();
if (rows.size() > 1) {
for (int i = 1; i < rows.size(); i++) { //从1开始,跳过列名
ObjectList chat = new ObjectList(); 定义一个对象(对象字段与excel的列对应)
//下面开始解析
Cell[] cell = rows.get(i);
if (StringUtils.isBlank(cell[0].getValue())) {
continue;
}
String id= cell[0].getValue();
String name = cell[1].getValue();
chat.setId(id);
chat.setName(name);
list.add(chat);
}
}
return list; //得到解析内容
}
————————————————————————————————————————————————————
这里整理了一个jar包,可以直接使用,能够解析07与03版
//测试类
public static void main(String[] args) {
// check is office2007 or 03 version
ExcelUtils.getExcelExtensionName(new File("/07.xlsx"));
ReaderSupport rxs = ReaderSupport.newInstance(ReaderSupport.TYPE_XLSX, new File("/in.xlsx")); //如果是07第一个参数ReaderSupport.TYPE_XLSX,03第一个参数是ReaderSupport.TYPE_XLS
rxs.open();
ExcelRowIterator it = rxs.rowIterator();
while (it.nextRow()) {
System.out.println(it.getCellValue(0));
}
rxs.close();
WriterSupport wxs = WriterSupport.newInstance(WriterSupport.TYPE_XLSX, new File("/out.xlsx")); //同上
wxs.open();
wxs.increaseRow();
for (int i = 0; i < 5; i++) {
wxs.increaseRow();
wxs.writeRow(new String[] { "test" + i });
}
wxs.close();
}
jar 包见附件excel.jar
相关推荐
在Spring Boot框架中,实现Excel文件的...总的来说,Spring Boot结合Apache POI提供了一种高效且灵活的方式来处理Excel文件解析任务,适用于各种后端应用。通过合理的代码设计和优化,可以满足复杂的数据导入导出需求。
### 解析EXCEL文件源码知识点详解 #### 一、导入EXCEL文件并获取数据流 在处理EXCEL文件时,通常需要先将其作为一个输入流读取。代码中使用了`MultipartHttpServletRequest`来处理HTTP请求中的多部分数据,这在上...
在Android平台上,解析Excel文件是一项常见的任务,尤其在数据处理、报表展示或者用户交互中。本文将详细讲解如何在Android应用中实现Excel文件的解析,主要聚焦于使用JXL库进行处理。 首先,JXL是一个Java库,专门...
本资源中提到的"文件上传Excel解析相关的jar"是针对使用Java和SpringMVC进行Excel文件操作时所必需的库文件。 首先,文件上传是Web应用的基本功能之一。在SpringMVC中,我们可以利用`MultipartFile`接口来处理文件...
Excel文件上传,获取Excel文件并解析
在Java开发中,上传并解析Excel文件是一种常见的需求,特别是在数据处理、报表导入或系统集成等场景。本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要...
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
Excel文件主要有两种格式:`.xls`(旧版)和`.xlsx`(新版),它们都是用于存储表格数据、计算公式、图表和其他复杂功能的文件。在编程或数据分析中,我们经常需要解析这些文件,以便在程序中使用数据或执行进一步的...
1. **HSSF(Horrible Spreadsheet Format)**:这是Apache POI中处理旧版Excel文件(.xls,Biff8格式)的部分。HSSF提供了创建、修改和读取Excel 97-2007格式的工作簿的类和接口。 2. **XSSF(XML Spreadsheet ...
本文件内含有支持所有Excel文件解析导入的方法
"解析大文件excel"这个主题就聚焦于如何高效地处理那些包含大量数据的Excel文件,特别是当使用Apache POI库时遇到的内存问题。Apache POI是Java开发者广泛使用的API,用于读写Microsoft Office格式的文件,包括Excel...
本文将深入探讨如何使用JavaScript在浏览器端解析和读取Excel文件,主要基于开源库`js-xlsx`。 `js-xlsx`是一个强大的JavaScript库,专门用于解析和操作Excel文件(.xlsx和.xls格式)。它支持读取二进制文件、Base...
为了解决这个问题,我们可以使用Apache POI的精简版,如Apache POI SXSSF,它支持在内存有限的环境中创建和修改大型Excel文件。 以下是使用Apache POI SXSSF在Android中解析Excel的基本步骤: 1. **添加依赖**:在...
然而,由于Excel文件是Microsoft Office套件的一部分,通常由诸如Python的pandas库或Java的Apache POI等高级语言处理,使用C/C++直接解析Excel文件可能相对复杂一些。下面我们将深入探讨如何在C/C++环境中解析Excel...
在这个"poi 解析excel文件内容demo"中,我们主要关注如何使用Apache POI库来读取和解析Excel文件,无论它们是2003版的.XLS还是2007以后的.XLSX格式。 首先,Apache POI提供了两种主要的接口来处理Excel文件:HSSF...
创建文件夹、创建txt文件、向里面写数据、解析txt文件、创建excel文件、解析excel文件 下载后直接运行
"日志文件解析Excel版"是一个工具,它旨在帮助用户方便地处理和分析这些日志数据,将其转化为易于理解和处理的Excel格式。 1. **日志文件解析**:日志文件通常包含大量的文本信息,如时间戳、事件级别(如INFO、...
在这个场景中,我们关注的是如何使用Perl来解析Excel文件。Excel文件通常包含表格数据,这对于数据分析、报告生成或自动化工作流程非常有用。Perl提供了多种库来处理这种任务,其中最常用的是Spreadsheet::ParseXLSX...
EXCEL文件解析工具 jxl.jar 支持xls格式excel文件读写