太原网站建设招聘,网站推广建设加盟,酒店 手机网站模板,网站建设年终总结POI是Apache 提供的一个开源的Java API#xff0c;用于操作Microsoft文档格式#xff0c;如Excel、Word和PowerPoint等。POI是Java中处理Microsoft文档最受欢迎的库。
截至2023/12#xff0c; 最新版本时 POI 5.2.5。
JDK版本兼容
POI版本JDK版本4.0及之上版本 1.83.…POI是Apache 提供的一个开源的Java API用于操作Microsoft文档格式如Excel、Word和PowerPoint等。POI是Java中处理Microsoft文档最受欢迎的库。
截至2023/12 最新版本时 POI 5.2.5。
JDK版本兼容
POI版本JDK版本4.0及之上版本 1.83.11及之后的 3.x 1.63.5 到 3.101.53.5 之前的版本1.4
使用Maven导入POI相关依赖
要使用 Apache POI 处理 Excel 文件一般需要导入以下 Maven 依赖
dependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion5.2.5/version
/dependency
dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion5.2.5/version
/dependency其中
poi 是基础依赖提供了操作 Excel 文件的核心功能poi-ooxml 是操作 Office Open XML 格式文件如 .xlsx、.docx 等的扩展库。
只需要处理 Excel 文件以上两个依赖已经足够了。如果需要处理 Word、PowerPoint 等其它类型的 Office 文件还需要导入相应的扩展库。
基本示例
以下是一个使用POI 5创建和编辑Excel文件的示例代码
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;
import java.io.IOException;public class PoiExample {public static void main(String[] args) throws IOException {// 创建一个新的工作簿Workbook workbook new XSSFWorkbook();// 创建一个新的工作表Sheet sheet workbook.createSheet(Sheet1);// 创建一行并在其中添加单元格Row row sheet.createRow(0);Cell cell row.createCell(0);cell.setCellValue(Hello, World!);// 将工作表写入文件String filename example.xlsx;FileOutputStream outputStream new FileOutputStream(filename);workbook.write(outputStream);outputStream.close();System.out.println(Excel文件已创建并保存到 filename);}
}此代码将创建一个名为example.xlsx的新Excel文件并在第一个工作表上添加一个单元格其中包含文本Hello, World!。 产生的Excel 文件打开之后的画面如下所示
请注意在代码中我们使用了XSSFWorkbook类这个类是用于处理.xlsx文件格式的工作簿。 如果你要处理.xls文件格式则需要使用HSSFWorkbook类。
HSSFWorkbook和XSSFWorkbook区别
在POI中HSSFWorkbook和XSSFWorkbook都是用来表示Excel工作簿workbook的类但它们在处理Excel格式上有所不同。
HSSFWorkbook
HSSFWorkbook是POI中操作Excel 97-2003格式.xls的类。它基于“OLE2”文件格式它使用的是旧的二进制格式所以它的最大限制是65536行和256列。HSSFWorkbook有一些缺点如不能处理大于2GB的文件但它在兼容性和使用方面非常好特别是在使用低版本的Excel时。
XSSFWorkbook
XSSFWorkbook是POI中操作Excel 2007及以上版本.xlsx的类。它基于XML文件格式使用基于ZIP的文件格式。相比HSSFWorkbookXSSFWorkbook可以处理更大的文件支持更多的格式并提供更好的性能。
在选择HSSFWorkbook和XSSFWorkbook时可以根据所需的Excel格式以及文件大小和处理性能的需要进行选择。
错误解决之java.lang.NoSuchMethodError: org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream.builder()
出现这个错误的原因可能时项目依赖的 Apache Commons IO 版本与 Apache POI 版本不兼容 可能是项目已经导入了旧的 Apache Commons IO但是POI要求的该库的版本又比较高 Apache Commons IO是一个Java类库它提供了许多有用的IO输入/输出实用程序使得Java IO编程更加容易。它提供了一组简单而强大的工具类可以用于处理常见的IO任务如读写文件、复制文件、关闭文件流、处理文件路径等。此外它还提供了一些高级功能如符号链接处理、文件过滤器、流处理、资源管理等。Apache Commons IO项目是Apache Software Foundation的一个子项目可以自由下载和使用。 该问题解决方法可以有多种 检查项目中是否有多个版本的 Apache Commons IO。如果是请删除其中一个版本。 更新Maven 依赖项以确保 Apache POI 和 Apache Commons IO 版本是兼容的。比如说降级POI的版本到 ..Maven导入修改为如下 dependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion5.0.0/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion5.0.0/version/dependency. 如果使用的是较旧版本的 Apache POI则升级到新版本。
poi-version.jar 基础依赖的包
在POI的基础依赖包的不同子包中存在一些同名的类 比如Sheet , 在org.apache.poi.ss.usermodel和org.apache.poi.sl 中都存在 这里看一下基础依赖的主要包及作用 org.apache.poi.ss包是Apache POI库的核心包之一它包含了用于处理Excel电子表格的类和接口。它提供了一些基于行和列的模型来处理Excel文件支持Excel文件的读取、写入和修改。可以使用该包来创建、读取和编辑简单的Excel文件。 org.apache.poi.sl包则是Apache POI库的另一个包它提供了一些类和接口用于处理Microsoft Office Open XML文件格式中的幻灯片和演示文稿如PPT和PPTX文件。它也包含了一些类和接口用于处理其他的Office文件格式如ODP和ODS文件。 org.apache.poi.hpsf 提供了处理Microsoft Office文档属性的功能。HPSF代表“文档摘要信息流”是一个二进制格式用于存储Office文档的元数据信息比如作者、标题、主题、关键字、类别等等。 org.apache.poi.hssf负责处理HSSF格式的Excel文档。HSSF即“Horrible Spreadsheet Format”是Excel二进制文件格式的一种。该包包含了一系列类可以读取、创建、修改和写入HSSF格式的Excel文件例如HSSFWorkbook、HSSFSheet、HSSFRow和HSSFCell等。通过使用org.apache.poi.hssf包Java开发人员可以在应用程序中使用HSSF格式的Excel文件进行数据处理和导入导出操作。 org.apache.poi.poifs负责处理OLE 2 Compound Document格式的文件包括Excel文件、Word文件、PowerPoint文件等。OLE 2 Compound Document是微软公司开发的一种文件格式它可以将多个文件组合成一个文件其中包括存储数据的流和存储元数据的属性表。 org.apache.poi.poifs包中包含了一些类和接口可以读取、创建、修改和写入OLE 2 Compound Document格式的文件例如POIFSFileSystem、POIFSWriter、DocumentEntry、DirectoryEntry等。开发人员可以使用这些类和接口来操作Excel、Word等文件格式例如读取、写入、创建、修改、删除文件以及查找文件等操作。