文件签名0A 0A 0A

时间:2017-07-14 09:00:13

标签: java excel

我在这个网站上创建了一个帐户,因为我已经困难了几天了。我正在尝试制作一个可以登录安全网站并下载某个Excel文件的java程序(使用有效的凭据,没有任何违法行为!)

但是,当我尝试打开excel文件时,我得到NotOle2FileException。我正在尝试下载/读取的文件是一个excel文件,但它托管在一个SharePoint环境中,该环境会自动使用Excel Web App打开它......我得到的标题签名是0x6C6D74683C0A0A0A,应该是0xE11AB1A1E011CFD0(< - Excel OLE2格式)......

有没有人知道我得到的文件签名是指什么?它是否必须以某种方式对嵌入在网站上的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文件的元素(不能硬编码,因为我希望能够根据用户输入下载不同的文件)基本上:href属性锚链接到以.xlsx

结尾的网址

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

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

1 个答案:

答案 0 :(得分:0)

找到解决方案,感谢评论说它是一个Html页面!

基本上我首先将它放在'UnexpectedPage'对象中,使用.getInputStream作为excel文件的输入流。只需添加2行代码:)