如何解决无效的头签名;读取0x6576206C6D783F3C,应为0xE11AB1A1E011CFD0错误java?

如何解决无效的头签名;读取0x6576206C6D783F3C,应为0xE11AB1A1E011CFD0错误java?,java,excel,io,filestream,Java,Excel,Io,Filestream,我正在从web应用程序导出.xls格式的文件。当我试图读取此文件时,它抛出错误为: java.io.IOException:头签名无效;读取0x6576206C6D783F3C,应为0xE11AB1A1E011CFD0 这是导出的文件,因此无法更改格式 这是我的代码,附件是excel文件: public void verifyExportedData() throws Exception{ String filename = "Top_Down_Planning_by_Investmen

我正在从web应用程序导出.xls格式的文件。当我试图读取此文件时,它抛出错误为:

java.io.IOException:头签名无效;读取0x6576206C6D783F3C,应为0xE11AB1A1E011CFD0

这是导出的文件,因此无法更改格式

这是我的代码,附件是excel文件:

public void verifyExportedData() throws Exception{
    String filename = "Top_Down_Planning_by_Investment.xls"      
    File=new FileInputStream(new File("testdata/"+filename));
    HSSFWorkbook workbook = new HSSFWorkbook(File);
    HSSFSheet sheet=workbook.getSheet("Top Down Planning by Investmen");
    DataFormatter formatter = new DataFormatter();
    System.out.println("Cell data : "+sheet.getRow(0).getCell(1));
}
有人能帮忙吗?

正在以与正常相反的顺序输出“预期”和“实际”文件签名。(这可能是一个大端对小端的事情…)

根据我在网上找到的一个来源,一个“.xls”文件的文件签名是

与“预期”签名匹配(反向)。因此,如果我反转“实际”签名,我得到

  3C 3F 78 6D 6C 20 76 65
如果我把这些十六进制码转换成ASCII码

  '<' '?' 'x' 'm' 'l' ' ' 'v' 'e'

“谢谢您的解释@Stephen C!我正在以.xls格式导出文件,该格式从应用程序中基于XML的格式转换而来。应用程序中有一个链接“导出到Excel”,该链接提供了此Excel文件。你知道我怎样才能成功地阅读它或使它成为.xls头格式吗??
  '<' '?' 'x' 'm' 'l' ' ' 'v' 'e'
  <?xml ve
  <?xml version="1.0" encoding="UTF-8" standalone="no" ?>