根据字节而不是扩展名区分excel文件类型

根据字节而不是扩展名区分excel文件类型,excel,language-agnostic,Excel,Language Agnostic,我目前有一个方法接收excel文件的字节数组。它工作得很好,我根据文件中的前两个字节区分了文件类型(.xls,和.xlsx)。如果它是.xlsx,则以PK开头。不幸的是,现在我收到了.xlsm文件,我不知道用什么字节来区分它们。现在我没有文件名来获取扩展名。唯一的区别是.xlsx和.xlsm可能包含宏。我很确定您需要进一步解析文件才能找到答案 请注意,.xlsx开头的神奇数字“PK”(实际上是PK\x03\x04)表示压缩数据。要进一步解析文件,首先必须根据ZIP文件格式对其进行解码(解压缩)。

我目前有一个方法接收excel文件的字节数组。它工作得很好,我根据文件中的前两个字节区分了文件类型(
.xls
,和
.xlsx
)。如果它是
.xlsx
,则以PK开头。不幸的是,现在我收到了
.xlsm
文件,我不知道用什么字节来区分它们。现在我没有文件名来获取扩展名。

唯一的区别是.xlsx和.xlsm可能包含宏。我很确定您需要进一步解析文件才能找到答案


请注意,.xlsx开头的神奇数字“PK”(实际上是PK\x03\x04)表示压缩数据。要进一步解析文件,首先必须根据ZIP文件格式对其进行解码(解压缩)。

唯一的区别是.xlsx和.xlsm可能包含宏。我很确定您需要进一步解析文件才能找到答案


请注意,.xlsx开头的神奇数字“PK”(实际上是PK\x03\x04)表示压缩数据。要进一步解析文件,首先必须根据ZIP文件格式对其进行解码(解压缩)。

谢谢,我将添加一个方法,该方法也将文件扩展名作为参数。省得我费劲去想它了。糟糕的是,excel依赖于该扩展始终正确,一句话中的“糟糕”和“excel”。。看起来很熟悉:DThanks,我将添加一个方法,该方法也将文件扩展名作为参数。省得我费劲去想它了。糟糕的是,excel依赖于该扩展始终正确,一句话中的“糟糕”和“excel”。。我看起来很熟悉:D