当前位置: 首页 > 面试题库 >

使用Apache POI确定MS Excel文件类型

李利
2023-03-14
问题内容

有没有一种方法可以确定Apache POI中的MS Office Excel文件类型?我需要知道Excel文件的格式是什么:Excel
‘97(-2007)(.xls)或Excel 2007 OOXML(.xlsx)。

我想我可以做这样的事情:

int type = PoiTypeHelper.getType(file);
switch (type) {
case PoiType.EXCEL_1997_2007:
   ...
   break;
case PoiType.EXCEL_2007:
   ...
   break;
default:
   ...
}

谢谢。


问题答案:

正在对答案发表评论…

如果您要对文件做一些特殊的事情,那么rjokelai的答案就是做到这一点。

但是,如果您只是要使用HSSF / XSSF / Common
SS用户模型,那么让POI为您完成操作并使用WorkbookFactory为您检测并打开类型会更加简单。您将执行以下操作:

 Workbook wb = WorkbookFactory.create(new File("something.xls"));

要么

 Workbook wb = WorkbookFactory.create(request.getInputStream());

然后,如果您需要做一些特别的事情,请测试它是否为HSSFWorkbookXSSFWorkbook。打开文件时,请尽可能使用File而不是InputStream来加快处理速度并节省内存。

如果您根本不知道文件是什么,请使用Apache Tika进行检测-它可以为您检测大量不同的文件格式。



 类似资料:
  • 本文向大家介绍使用Python(sndhdr)确定声音文件的类型,包括了使用Python(sndhdr)确定声音文件的类型的使用技巧和注意事项,需要的朋友参考一下 Python标准库中的sndhdr模块提供实用程序功能,可读取文件中声音数据的类型。函数返回,其中包含五个属性 文件类型 代表'aifc','aiff','au','hcom','sndr','sndt','voc','wav','8s

  • 我使用HTML5文件API将文件拖入电子应用程序,并获得文件详细信息(名称、哑剧类型、大小等)。)。如何通过电子对话框模块选择文件时实现相同?下面是利用HTML5文件API的代码(渲染过程):

  • 我想我可以这样做: 谢了。

  • 问题内容: 假设我们项目中的每个PHP文件都包含一个类定义,那么如何确定文件中定义了哪些类? 我知道我可以对文件进行正则表达式声明,但是我更喜欢做一些更有效的事情。 问题答案: 对于正在从事的项目,我需要这样的东西,这是我编写的功能:

  • 问题内容: 即,您如何从文本(xml / txt,独立于编码)中分辨出存档文件(jar / rar / etc。)? 问题答案: 没有保证的方法,但是有两种可能: 在文件上查找标题。不幸的是,标头是特定于文件的,因此尽管您可能能够发现它是RAR文件,但您将无法获得更通用的答案,无论是文本还是二进制。 计算字符与非字符类型的数量。文本文件将主要是字母字符,而二进制文件(尤其是压缩文件,如rar,zi

  • 问题内容: 如果我要创建一个泛型的Java类,例如: 如何才能内部确定该类,最后变成什么“ T”? 我戳了一下Java API并使用了反射的东西,instanceof,getClass,.class等,但是我似乎无法做出决定。我觉得我已经接近了,只需要合并多个电话,但会持续很短的时间。 更具体地说,我试图确定是否用3种可能的类型之一实例化了该类。 问题答案: 我在他的一些项目中使用了与他在此处解释