首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >apache POI中HSSFWorkbook与Workbook的区别

apache POI中HSSFWorkbook与Workbook的区别
EN

Stack Overflow用户
提问于 2013-09-12 09:26:12
回答 3查看 47K关注 0票数 15

我在使用apachePOI库研究excel的读写时,发现了两种解决方案,一种是用HSSFWorkbook实现的,另一种是用工作簿实现的。现在我怀疑为什么有两种解决方案来实现单一功能。

我的代码:

代码语言:javascript
运行
AI代码解释
复制
FileInputStream fis=new FileInputStream("D:\\Extras\\SeleniumPractice\\TestData.xlsx");     
Workbook workbook=WorkbookFactory.create(fis);
Sheet sheet=workbook.getSheet("TestData");

当我搜索的时候:

代码语言:javascript
运行
AI代码解释
复制
FileInputStream file = new FileInputStream(new File("C:\\test.xls"));

             
//Get the workbook instance for XLS file 
HSSFWorkbook workbook = new HSSFWorkbook(file);

 
//Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);

先谢谢你..:)

谢谢Mahesh

EN

回答 3

Stack Overflow用户

发布于 2013-09-12 09:40:21

Workbook是通用接口,既适用于HSSF (.xls),也适用于XSSF (.xlsx)。如果我没记错的话,它是在POI 3.5中引入的。

如果您使用像Workbook这样的公共接口,您可以让相同的代码透明地与HSSF和XSSF一起使用

如果只通过HSSFWorkbook为HSSF编写代码,则只能处理.xls文件。我建议你尽可能选择普通的。

您的加载代码应该类似于:

代码语言:javascript
运行
AI代码解释
复制
 Workbook wb = WorkbookFactory.create(new File("test.xls"));
 Sheet s = wb.getSheetAt(0);
 ....

这将自动检测文件的类型,并根据找到的内容返回.xls或.xlsx的工作对象

票数 40
EN

Stack Overflow用户

发布于 2013-09-12 09:39:06

我知道的主要区别是

Workbook是一个接口,而HSSFWorkbook、SXSSFWorkbook、XSSFWorkbook是实现Workbook接口的类。

公共接口工作簿工作簿的高级表示。这是大多数用户在阅读或编写工作簿时都会构造的第一个对象。

公共最终类HSSFWorkbook扩展了POIDocument实现工作簿的.xls工作簿的高级表示。无论是阅读还是编写.xls工作簿,这都是大多数用户都会构造的第一个对象。

有关详细信息,请参阅POI api docs

票数 10
EN

Stack Overflow用户

发布于 2017-01-24 13:07:49

什么是Apache POI?

代码语言:javascript
运行
AI代码解释
复制
Apache POI is a popular API that allows programmers to create, modify, 
and display MS Office files using Java programs. 

Apache POI是Apache Software Foundation提供的100%开源库。

工作簿

这是创建或维护Excel工作簿的所有类的超级接口。它属于org.apache.poi.ss.usermodel包。实现此接口的两个类如下所示:

(1)。HSSFWorkbook:该类具有读写.xls格式的Microsoft Excel文件的方法。

(2).XSSFWorkbook:这个类具有读写.xls或.xlsx格式的Microsoft Excel和OpenOffice xml文件的方法。

HSSFWorkbook

它是org.apache.poi.hssf.usermodel包下的一个高级类。它实现了工作簿接口,用于.xls格式的Excel文件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18760416

复制
相关文章
git合并时冲突<<<<<<< HEAD
根据需要删除代码就行了 完事把<<<<<<< ======= >>>>>>都删掉冲突就解决了
php007
2019/08/05
7.4K0
git合并时冲突<<<<<<< HEAD
当网页图片不存在时不显示叉叉,显示默认图片的方法,管用的很!
有时候管理系统里面的产品图片没上传,或者因为网络原因传输过程中断了,图片没显示出来,就会显示一个叉叉,并且图片的占位符也不起作用了。昨晚上花了1个小时搜索、调试,验证了几种网络上的方法,最终有2种方法的确有效,鉴于代码优美的需要,我选择了如下一种。
崔文远TroyCui
2019/02/26
1.9K0
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
机器之心
2018/07/26
3770
当AI泡沫破裂时……
很显然我们目前处于一个不稳定的状态。这到底是一场泡沫还是一次革命?答案是当然包含一点革命——深度神经架构所创造的实实在在的成功已经颠覆了视觉和语音识别领域,更通用的机器学习也已经有了大量真实世界用例。
刀刀老高
2018/07/24
3600
盘点Git的那些冷门玩法
其实也不是很冷门,只是要实现以下需求时,笔者一时间竟然想不起来,还要借助搜索引擎,于是记录一下,算是 备忘。希望对大家也有帮助。
用户1516716
2019/07/10
6500
git 入门教程之备忘录[译] 转
提交应该是相关更改的包装,例如,修复两个不同的 bug 应该产生两个单独的提交. 小的提交让其他开发者更容易理解此次更改,并且万一出错方便回滚. 在暂存区这类工具以及暂存部分文件的能力下,git 很容易创建细粒度的提交.
雪之梦技术驿站
2019/04/03
5120
当elementUi 中select选中值绑定为对象时,操作selected时默认高亮的value如何正常显示
注意事项: 1.如上代码value绑定的是item的对象; 2.首先在el-option中添加:key="item.id"的属性; 3.然后在el-select 添加value-key="id"属性,注意value-key前面没有: 4.注意value-key的值与key绑定的属性值对应。
李维亮
2021/07/08
2.4K0
Git系列之查看状态
本节来说下 Git 的状态,在日常开发中我们每天都在提交自己的文件到仓库中,有时会存在我们写了很多的功能,都是提交到了缓存区,而没有想仓库内提交,或者我们新增了一个仓库内没有文件,忘记了提交,那么我们如何来查看当前工作去内有哪些文件被更改了,需要做进一步的操作呢?
申霖
2019/12/27
1.3K0
Git系列之查看状态
如何在 Highcharts 图中当所占百分比为 0 时不显示0%
图片.png 解决办法其实很简单,将enabled属性改为false即可: dataLabels: { enabled: false } 图片.png 完成之后的显示如下 图片.png
王小婷
2018/09/26
1.1K0
当css属性width设为100%时
  平常在写页面html代码时,经常会使用到width:100%来使控件宽度为父控件的内容宽度。但如果父控件为body,而且没有明确设置body的宽度,那么就会出现以下的情况了。   代码: 1 <body> 2 <div style="background:#888;width:100%;height:200px"> 3 <div style="width:1000px;height:100px;margin:0 auto;border:solid 1px red"></div> 4 </di
^_^肥仔John
2018/01/18
1.4K0
当css属性width设为100%时
当删库时如何避免跑路
删库跑路也是个老梗了,可见在运维数据库的过程中误删除数据,或者开发的代码有bug,造成数据的误删除屡见不鲜。不过现在也有许多用于恢复或预防误删除的方案,例如SQL管理系统,将要执行的SQL先交由管理员审核,然后由管理员备份一个镜像数据库,在镜像上执行该SQL,并在执行后还原镜像。这样经过层层把关就可以大大减小出现误操作的几率。
端碗吹水
2020/09/23
1K0
当删库时如何避免跑路
当执行 DELETE 时,你心慌了
老实讲,俺也一样。不仅仅是执行 DELETE 心里会咯噔下,多几次确认,哪怕是 INSERT,UPDATE, 甚至是 SELECT, 只要是在生产环境做的操作,都难免心里会有些紧张。
Lenis
2021/10/11
3280
当hahaAI超过小程序内存时!
今年年底,我将发布与我的书相关的所有应用,包括微信小程序、个人网站以及谷歌浏览器扩展程序。
石璞东
2021/10/13
4680
当测试发现300个缺陷时
当测试人员发现了这么多问题后,是否还隐藏着更多的未知问题?当测试人员疲于提交大量的缺陷时,测试执行的有效性是否降低了?还有哪些风险项存在?
CKL的思考
2023/08/28
2150
当测试发现300个缺陷时
git cherry-pick详解_git discard
欢迎大家关注我的掘金帐号 我会在那里定期更新最新版本的Android Framework源码模块分析~~
全栈程序员站长
2022/09/23
9490
当 snapshot 失败时发生了什么
工作中遇到了与 snapshot 异常相关的问题,特此总结一下,与 snapshot 相关的流程图如下:
shengjk1
2020/10/16
1K0
当 snapshot 失败时发生了什么
Kubernetes集群部署中安装Pods网络插件一直显示Pending状态解决
完成后可以重启一下docker和kubelet,正常情况就都会running了。
非著名运维
2022/06/22
1.3K0
当 SaaS 服务不再值得信任时...
三月初,和朋友线上小聚,我分享了自己对未来软件模式的一点思考。就我个人来说,我自己和公司使用的 SaaS 服务越多,我越有隐私和数据安全的担忧。对个人来说,「隐私」是使用 SaaS 服务不得不交的「保护费」,你只要想用,就没得选择;对公司来说,「隐私」可以用钱解决,如果你注重公司数据的「隐私」,可以通过 NDA 或者额外的协议(比如 SaaS 服务商所谓的 enterprise plan,言下之意就是你要修改我的协议条款,那么对不起,同样的东西你就要多交些钱做保护费)来保证。但是「数据安全」,无论个人和公司,似乎都没得选,只有事故来临时有无赔偿或者赔偿多寡的区别。安全三要素(confidentiality, integrity, availability)中,我最担心的是的 availability,也就是可访问性。它最不起眼,当它正常运作时,你感受不到它的存在;当它被剥夺时,就大难临头。
tyrchen
2022/03/29
4300
当 SaaS 服务不再值得信任时...
点击加载更多

相似问题

TypeError: crypto.createHmac不是一个函数

18

Woocommerce TypeError:$(.).on不是函数

11

Angular:获取对象:TypeError(...)不是函数

10

Angular 4: TypeError: this.function不是一个函数

122

this.changeHook 4- TypeError: Angular不是一个函数

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文