如果我不知道我的文件类型(但这个文件其实是一个excel文件),之前使用低版本的aspose.word和aspose.cell,我先使用aspose.word转换未知类型文件,此时会报错,我捕捉异常后,使用aspose.cell转换文件。也就是普通的降级处理方案。
但当我更新到高版本后,发现aspose.word转换excel文件不会报错,但是会有很大的问题,乱码页数等问题。我的降级方案失效了。
我想知道是否有办法准确获取文件类型(根据文件流获取类型无法准确区别word和excel)
我发现FileFormatType不是一个枚举,我是用你的代码只能获取int值,没有可以返回字符串的方法吗,比如“docx”
是的,FileFormatType 表示常数值。 您可以轻松评估和比较代码中的相关文件格式。 请参阅下面的示例代码以供参考:
例如
示例代码:
File file = new File("f:\\files\\Document1.docx");
byte[] array = Files.readAllBytes(file.toPath());
ByteArrayInputStream stream = new ByteArrayInputStream(array);
// Detect file format
FileFormatInfo info = FileFormatUtil.detectFileFormat(stream);
if(info.getFileFormatType() == FileFormatType.DOCX)
{
System.out.print("this is DOCX");
}
else if(info.getFileFormatType() == FileFormatType.XLSX)
{
System.out.print("this is XLSX");
}
else if(info.getFileFormatType() == FileFormatType.ODS)
{
System.out.print("this is ODS");
}
else if(info.getFileFormatType() == FileFormatType.XLSM)
{
System.out.print("this is XLSM");
}
.......
Hope, this helps a bit.