POI (Apache POI)

Apache POI 解析复杂的excel表格 一篇文章教你如何使用apache POI框架解析工作中遇到的复杂的Excel文件,内含完整项目代码以及测试文件。 阅读详情

POI

 

(Apache POI)

  编辑
Apache POI是 Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
中文名
POI
HDGF
提供读写 Microsoft Visio
XSSF
提供读写 Microsoft Excel  OOXML
结    构
HSSF 

目录

基本功能

编辑
结构:
HSSF - 提供读写 Microsoft Excel格式档案的功能。
XSSF - 提供读写 Microsoft Excel  OOXML格式档案的功能。
HWPF - 提供读写 Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写 Microsoft Visio格式档案的功能。

范文演示

编辑
创建Excel 文档
示例1将演示如何利用Jakarta POI API 创建Excel 文档。
示例1程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import  org.apache.poi.hssf.usermodel.HSSFWorkbook;
import  org.apache.poi.hssf.usermodel.HSSFSheet;
import  org.apache.poi.hssf.usermodel.HSSFRow;
import  org.apache.poi.hssf.usermodel.HSSFCell;
import  java.io.FileOutputStream;
public  class  CreateXL {
     /** Excel 文件要存放的位置,假定在D盘下*/
     public  static  String outputFile =  "D:\\test.xls" ;
     public  static  void  main(String argv[]) {
         try  {
             // 创建新的Excel 工作簿
             HSSFWorkbook workbook =  new  HSSFWorkbook();
             // 在Excel工作簿中建一工作表,其名为缺省值
             // 如要新建一名为"效益指标"的工作表,其语句为:
             // HSSFSheet sheet = workbook.createSheet("效益指标");
             HSSFSheet sheet = workbook.createSheet();
             // 在索引0的位置创建行(最顶端的行)
             HSSFRow row = sheet.createRow(( short ) 0 );
             //在索引0的位置创建单元格(左上端)
             HSSFCell cell = row.createCell(( short ) 0 );
             // 定义单元格为字符串类型
             cell.setCellType(HSSFCell.CELL_TYPE_STRING); //已过时
             // 在单元格中输入一些内容
             cell.setCellValue( "增加值" );
             // 新建一输出文件流
             FileOutputStream fOut =  new  FileOutputStream(outputFile);
             // 把相应的Excel 工作簿存盘
             workbook.write(fOut);
             fOut.flush();
             // 操作结束,关闭文件
             fOut.close();
             System.out.println( "文件生成..." );
         }  catch  (Exception e) {
             System.out.println( "已运行 xlCreate() : "  + e);
         }
     }
}
读取Excel文档中的数据
示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为test1.xls的Excel文件。
示例2程序如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import  org.apache.poi.hssf.usermodel.HSSFWorkbook;
import  org.apache.poi.hssf.usermodel.HSSFSheet;
import  org.apache.poi.hssf.usermodel.HSSFRow;
import  org.apache.poi.hssf.usermodel.HSSFCell;
import  java.io.FileInputStream;
public  class  ReadXL {
     /** Excel文件的存放位置。注意是反斜线*/
     public  static  String fileToBeRead =  "D:\\test1.xls" ;
     public  static  void  main(String argv[]) {
         try  {
             // 创建对Excel工作簿文件的引用
             HSSFWorkbook workbook =  new  HSSFWorkbook( new  FileInputStream(fileToBeRead));
             // 创建对工作表的引用。
             // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
             HSSFSheet sheet = workbook.getSheet( "Sheet1" );
             // 也可用getSheetAt(int index)按索引引用,
             // 在Excel文档中,第一张工作表的缺省索引是0,
             // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
             // 读取左上端单元
             HSSFRow row = sheet.getRow( 0 );
             HSSFCell cell = row.getCell(( short ) 0 );
             // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
             System.out.println( "左上端单元是: "  + cell.getStringCellValue());
         }  catch  (Exception e) {
             System.out.println( "已运行xlRead() : "  + e);
         }
     }
}
设置单元格格式
在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:
1、创建字体,设置其为红色、粗体:
1
2
3
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、创建格式
1
2
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font);
3、应用格式
1
2
3
4
HSSFCell cell = row.createCell(( short )  0 );
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue( "标题 " );
处理WORD文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import  java.io. * ;
import  org.apache.poi.hwpf.extractor.WordExtractor;
import  org.apache.poi.hssf.usermodel.HSSFWorkbook;
import  org.apache.poi.hssf.usermodel.HSSFSheet;
import  org.apache.poi.hssf.usermodel.HSSFRow;
import  org.apache.poi.hssf.usermodel.HSSFCell;
public  class  TestPoi {
     public  TestPoi() {}
     public  static  void  main(String args[]) throws  Exception{
         FileInputStream in =  new  FileInputStream( "D:\\a.doc" );
         WordExtractor extractor =  new  WordExtractor();
         String str = extractor.extractText(in);
         //System.out.println("the result length is"+str.length());
         System.out.println(str);
     }
}

Apache软件基金会

顶级项目
▪ ActiveMQ ▪ Ant ▪ Apache HTTP Server ▪ APR
▪ Beehive ▪ Camel ▪ Cassandra ▪ Cayenne
▪ Cocoon ▪ Commons ▪ Derby ▪ Directory
▪ Excalibur ▪ Felix ▪ Forrest ▪ Geronimo
▪ Gump ▪ Hadoop ▪ Harmony ▪ HBase
▪ iBATIS ▪ Jackrabbit ▪ James ▪ Lenya
▪ Lucene ▪ Maven ▪ mod_perl ▪ MyFaces
▪ OFBiz ▪ OpenEJB ▪ OpenJPA ▪ POI
▪ Roller ▪ Shale ▪ SpamAssassin ▪ stdcxx
▪ Struts ▪ Subversion ▪ Tapestry ▪ Tomcat
▪ Traffic Server ▪ Tuscany ▪ Velocity ▪ Wicket
▪ XMLBeans      
 
其他项目
▪ Jakarta项目 ▪ Apache XML ▪ Apache Incubator  
 
子项目

▪ BCEL ▪ BSF ▪ Cactus ▪ JMeter
▪ Slide ▪ Xerces ▪ Batik ▪ FOP
▪ Log4j ▪ XAP ▪ River ▪ ServiceMix
▪ Log4Net ▪ Abdera ▪ Ivy ▪ CXF
▪ ODE ▪ Solr  
Apache 的 POI提供API 一、 POI简介    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 二、 HSSF概况    HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermo 阅读详情

相关推荐

智能车轮腿组‘定点排雷’科目全解析:从雷区识别到姿态控制

本文深入解析了智能车竞赛轮腿穿越组‘定点排雷’科目的核心技术。从构建鲁棒的视觉识别系统,到融合编码器与IMU进行厘米级定位,再到实现框内高精度旋转的姿态控制,提供了一套完整的从感知到执行的闭环技术方案,助力参赛队伍攻克这一高难度科目。

weixin_29161719的博客 640

POI库中cell.setcelltype过时的解决方案

项目中使用POI 5.0以后的依赖在函数中使用Cell.setCellType()时,会显示此函数过时,

Happy_lifer的博客 4020

解读Autoware.Universe规划模块:Behavior Path Planner

Behavior Path Planner是一个基于行为生成不同形态路径的路径规划器,负责生成 基于交通状况的路径(path), 车辆可以移动的可行驶区域(drivable area)(在路径消息中定义), 将被发送到车辆接口的转向信号(turn signal) 命令。

策 5491

POI的setCellType()方法过时的解决方案

Excel 用POI 导入、导出、数据解析 的setCellType()方法过时的替代方法

qq_25484769的博客 6326

基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS

一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接从ISO文件启动,无需解开 支持MBR和GPT分区格式(1.0.15+) 支持超过4GB的ISO文件 支持大部分常见操作系统, 已测试650+ 个ISO文件 不仅仅是启动,而是完整的安装过程 版本升级时数据不会丢失 Ventoy 待改进 不支持macOS和ChromeOS 准备2个空的U.

wybarcelona的博客 3万+

高渗透率光伏接入配电网的电压越限与谐波治理:基于VSG构网型控制与SVG+APF联合补偿的Simulink仿真研究

本文针对高渗透率光伏接入配电网引发的电压越限和谐波畸变问题,提出了一种分层递进的综合治理方案。通过建立IEEE 33节点配电网的Simulink仿真模型,首先验证了传统跟网型控制下光伏渗透率提高导致的电压越上限(最高达1.08 p.u.)和系统谐波畸变严重(THD达8.72%)问题。进而提出:1)将部分光伏逆变器改造为构网型VSG控制,利用其无功调压能力与虚拟阻抗技术实现本地治理;2)在关键节点加装SVG+APF联合补偿装置进行全局动态无功补偿与谐波滤除。仿真结果表明,该方案能将节点电压控制在0.94-1.

huanghm88的专栏 576

poi5.0版本,setCellType()过时,解决读取数字类型转换为字符类型问题。

项目场景: java读取excel文件,读取其中的数字类型转换为字符类型。基于poi5.0版本,setCellType()过时的解决办法。 问题描述: 在读取excel文件时,需要读取到String类型的值,这时因为原来的setCellType(CellType.STRING)在poi5.0版本已经弃用,不能转换。 @Override public void run() { Cell cell = row.getCell(2); c

weixin_43898640的博客 2万+

DCMM评估报告模板样例

这篇DCMM评估报告对某数据管理公司2020年的数据管理能力进行了全面分析。报告显示,该公司在数据战略方面取得初步进展,但在数据治理和数据架构方面仍存在明显不足,包括缺乏有效治理流程、数据质量监控不足,以及数据标准化和转换灵活性不足等问题。评估报告提出了针对性改进建议,包括完善数据战略、建立治理流程、加强质量监控和提升数据转换灵活性等,为提升数据管理成熟度提供了重要指导。

cdfunlove的博客 166

POI(Apache POI)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34235105的博客 193

华为OD机试真题2025双机位A卷 Java&Go 实现【优美子数组】

华为OD机试真题2025双机位A卷 Java&Go 实现【优美子数组】

MISAYAONE的博客 239

基于matlab的CNN物体识别物体分类系统

主要对物体进行识别,搭建一个物体分类系统本次实验选择规模稍大的 CIFAR-10 数据集进行分类识别,对应图像的大小设计 VggNet、ResNet 进行网络训练。在实际操作过程中,受限于数据规模和硬件配置,对于大小放缩、批次参数、训练步数等进行了多次调试,这也对以后的图像分类任务具有较高的参考意义,并通过对 CIFAR-10 数据集进行训练和评测,采用网络修改的方式来得到新的 CNN 结构,适用于对网络进行配置、融合等相关研究。读者可以通过自行设计或选择其他网络、加载其他数据等方式进行实验的延伸。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2005

apache poi cell.setCellType()方法过时的替代方案

poi导入excel表格数据时报 java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell 异常是因为在读取cell单元格字符串时,有 Number 类型的数据,因此需要把它转化为纯String类型,这样就不会报错了。

ZwLemon 2781

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南

ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 296

Apache POI使用详解

一 :简介开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office(Excel、WORD、PowerPoint、Visio等

人不风流枉少年 13万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

apache poi教程_Apache POI教程

apache poi教程Welcome to Apache POI Tutorial. Sometimes we need to read data from Microsoft Excel Files or we need to generate reports in Excel format, mostly for Business or Finance purposes. Java does...

从零开始的教程世界 4375

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Apache POI

Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。银行网银系统导出交易明细各种业务系统导出Excel报表批量导入业务数据。

m0_66052129的博客 1100

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Apache POI各jar包的介绍

POI的jar不同版本要求jdk版本不同,根据自己的jdk版本选择不同版本。 其中commons-collections4是poi的依赖jar包,poi-ooxml-schemas和xmlbeans是poi-ooxml的依赖jar包,如果使用maven自动下载只在pom文件中添加poi和poi-ooxml就可以,如果自己下载jar包添加到项目中则5个都需要下载并添加。

殷小速的博客 9761

Apache POI 学习

Apache POI 是一个功能强大的 Java 库,用于处理 Microsoft Office 文件。Apache POI 官方文档。

weixin_42564451的博客 1441

【Apache POI导出Excel表格】

Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。一般情况下,POI 都是用于操作 Excel 文件。

m0_68331743的博客 1296

Apache POI详解

Apache POI(Poor Obfuscation Implementation)是一个开源的Java库,主要用于处理Microsoft Office文档。Word.doc(旧版)和.docx(新版)。Excel.xls(旧版)和.xlsx(新版)。PowerPoint.ppt(旧版)和.pptx(新版)。通过Apache POI库,可以轻松地操作Word模板(包括替换占位符、操作表格)、将Word文档转换为PDF,以及处理PowerPoint文档。

技术分享 1992

apache poi下载流程

1.打开你的浏览器输入  https://www.apache.org/  2.然后拖动到最下面,你会看到下面这个图,找到P分类,然后点击POI进入 3.点击下图红色箭头指向的链接 4.点击下图红色箭头指向的链接 5.选择你要下载的资源

qq_31065001的博客 1万+

[JAVA]POI(Apache POI)各Jar包的作用

文章来源:http://blog.youkuaiyun.com/szwangdf/article/details/39053859 目前POI的最新发布版本是3.10_FINAL.该版本保护的jar包有: Maven artifactId Prerequisites JAR poi commons-logging, commons-codec, log4

Thinking 5988
上一篇: @controller 和@service的区别
下一篇: 在Myeclipse 中导入java web项目出现JRE System Library(unbound)和Server Library(unbound)解决方法
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值