能否判断一个文件(doc docx xls xlsx)是由WPS Office还是Microsoft Office制作

版本:23.8
编程语言:java

Aspose能否判断源文件(类型为doc docx xls xlsx…),是由WPS Office还是Microsoft Office制作

@ZhonghaoSun
如果是Excel文件,你可以使用Workbook.getBuiltInDocumentProperties().getNameOfApplication()方法进行判断。请查看附件。result.zip (13.4 KB)

样例代码如下:

Workbook workbook = new Workbook(filePath + "a.xlsx");
System.out.println(workbook.getBuiltInDocumentProperties().getNameOfApplication());

workbook = new Workbook(filePath + "b.xlsx");
System.out.println(workbook.getBuiltInDocumentProperties().getNameOfApplication());

输出结果:

Microsoft Excel
WPS 表格

好的,doc docx文件是否支持呢

@ZhonghaoSun
我将把你的帖子转到相应的Aspose.Words部分,Words工作人员很快就会为你提供相应的帮助。

@John.He 我在本地电脑上用WPS打开了a.xlsx文件,然后编辑了内容。
按照以上代码,运行结果还是Microsoft Excel。
编辑后的文件:a.zip (7.5 KB)

查看这个文件的“属性-详细信息-程序名称”,也是Microsoft Excel


Aspose代码是否读取的这个值呢

@ZhonghaoSun 通过 “Aspose.Words”,您还可以使用 BuiltInDocumentProperties | Aspose.Words for Java 来获得这些信息。

@ZhonghaoSun
是的。中途有其他程序保存并不会更改程序名称的值。你可以使用workbook.getBuiltInDocumentProperties().getLastSavedBy()方法查看最后一次保存信息。如果office和wps是不同的账号,可以根据保存信息来判断是由什么程序保存的。