文件签名0A 0A 0A

我在这个网站上做了一个帐户,因为我现在一直在苦苦挣扎的一个问题。 我试图做一个Java程序,可以login到一个安全的网站,并下载某个Excel文件(使用有效的凭据,没有什么非法!)

但是,当我尝试打开Excel文件时,我得到一个NotOle2FileException 。 我试图下载/阅读的文件是一个excel文件,但它是托pipe在一个SharePoint环境,自动打开它与Excel Web应用程序…我得到的标头签名是0x6C6D74683C0A0A0A ,应该是0xE11AB1A1E011CFD0 (< Excel OLE2格式)…

有谁知道我得到的文件签名是指什么? 它是否需要以某种方式在网站上embedded的excel文件做任何事情?

Codewise我试着这个:

 URLConnection uc = anchor.click().getUrl().openConnection(); Workbook workbook; workbook = getWorkbook(uc); private Workbook getWorkbook(URLConnection uc) throws IOException { Workbook workbook = null; System.out.println(uc.getURL()); if (uc.getURL().toString().endsWith("xls")) { workbook = new XSSFWorkbook(uc.getInputStream()); } else if (uc.getURL().toString().endsWith("xlsx")) { workbook = new HSSFWorkbook(uc.getInputStream()); } else { throw new IllegalArgumentException("The specified path is not an excel file"); } return workbook; } 

锚是指链接到Excel文件的网站上的元素(不能被硬编码,因为我希望能够根据用户input下载不同的文件)基本上:锚的href属性链接到URL结尾在.xlsx上

编辑:所以签名将是一个htmlpage,但是当试图将其保存为HtmlPage我收到以下错误:

 java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage 

find了解决scheme,感谢评论说这是一个Html页面!

基本上,我把它放在一个“UnexpectedPage”对象中,使用.getInputStream作为excel文件的inputstream。 只需要添加2行代码:)