如何解决无效的 header 签名;读取 0x6576206C6D783F3C,预期 0xE11AB1A1E011CFD0 错误 java?
How to resolve Invalid header signature; read 0x6576206C6D783F3C, expected 0xE11AB1A1E011CFD0 error java?
我正在从 .xls 格式的 Web 应用程序导出文件。当我试图读取这个文件时,它抛出错误:
java.io.IOException: Invalid header signature; read 0x6576206C6D783F3C, expected 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));
}
有人可以帮忙吗?
"expected" 和 "actual" 文件签名正在以与正常相反的顺序输出。 (这可能是大端与小端的区别...)
根据我在网上找到的来源,“.xls”文件的文件签名是
D0 CF 11 E0 A1 B1 1A E1
匹配 "expected" 签名(反向)。所以如果我反转 "actual" 签名,我会得到
3C 3F 78 6D 6C 20 76 65
如果我将这些十六进制代码转换为 ASCII,我会得到
'<' '?' 'x' 'm' 'l' ' ' 'v' 'e'
或
<?xml ve
这看起来很眼熟吗?这是一个典型的 XML 文件头:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
您似乎已将文件导出为基于 XML 的格式,而不是旧的“.xls”格式。我猜该文件是“.xlxs”格式或类似格式。
我认为您需要使用 XSSF 而不是 HSSH:
我正在从 .xls 格式的 Web 应用程序导出文件。当我试图读取这个文件时,它抛出错误:
java.io.IOException: Invalid header signature; read 0x6576206C6D783F3C, expected 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));
}
有人可以帮忙吗?
"expected" 和 "actual" 文件签名正在以与正常相反的顺序输出。 (这可能是大端与小端的区别...)
根据我在网上找到的来源,“.xls”文件的文件签名是
D0 CF 11 E0 A1 B1 1A E1
匹配 "expected" 签名(反向)。所以如果我反转 "actual" 签名,我会得到
3C 3F 78 6D 6C 20 76 65
如果我将这些十六进制代码转换为 ASCII,我会得到
'<' '?' 'x' 'm' 'l' ' ' 'v' 'e'
或
<?xml ve
这看起来很眼熟吗?这是一个典型的 XML 文件头:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
您似乎已将文件导出为基于 XML 的格式,而不是旧的“.xls”格式。我猜该文件是“.xlxs”格式或类似格式。
我认为您需要使用 XSSF 而不是 HSSH: