请问poi解析excel2003和2007有没有办法是用同样的方法实现

发布于 2021-11-25 14:06:15 字数 111 浏览 818 评论 9

Poi解析2003时使用的是HSSFCell,而2007的则是
XSSFCell,是完全不同的两套API,请问可以实现结合成一套api,在某个方法中实现么,而不用去判断是否是xls文件还是xlsx文件,谢谢高手帮分析下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

谢绝鈎搭 2021-11-26 12:00:27

这个是正确.哈哈

想挽留 2021-11-26 12:00:27

好!

晚风撩人 2021-11-26 12:00:26

Workbook workbook = WorkbookFactory.create(file); --- 统一实现

坚持沉默 2021-11-26 12:00:15

不能!必须先要判断excel的类型,不过 HSSFWorkbook 和 XSSFWorkbook 实现的接口都是一样的Workbook,直接在实例化接口的时候有点区别其他时候没有任何差异。

比如,刚刚获取excle文件流,先判断excel格式确定用03还是07处理类实例化Workbook接口。

Workbook workbook = null;
  if(Constants.ImportExport.EXCEL.equals(fileExtension))
  {
       workbook = new HSSFWorkbook(fin);
  }
  else
  {
       workbook = new XSSFWorkbook(fin); 
  }

获取workbook 后,后续处理Sheet、Row、Cell 统统用接口实现,不用关注03,07差异性。也就是根本不会涉及到 XSSFCell、HSSFCell这些类。

相关类或接口:

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;

以上够全面了吧,亲。

本宫微胖 2021-11-26 11:45:04

两个版本结构发生了重大变化了。你可以根据需要自己写个接口啊。

静谧 2021-11-26 11:44:03

两个版本结构发生了重大变化了。你可以根据需要自己写个接口啊。

泛泛之交 2021-11-26 10:54:23

确实不能

月牙弯弯 2021-11-26 10:04:06

该实现已经是最好的办法了,多谢

酒几许 2021-11-26 06:10:14

不能。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文