文件签名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行代码:)