开发者社区> 问答> 正文

poi导出,单元格链接到本地文件?报错

poi导出,单元格设置链接跳转到一个本地文件,代码如下:

XSSFHyperlink link = (XSSFHyperlink) creationHelper.createHyperlink(HyperlinkType.FILE);
//也尝试了file:///..\\lala.jpg加这个前缀的方式
link.setAddress("..\\lala.jpg");

但是发现这样子会一直报错:“Address of hyperlink must be a valid URI”

然后就看了setAddress方法,发现内部有一个校验逻辑如下:

    public void setAddress(String address) {
        validate(address);

       _location = address;
        //we must set location for internal hyperlinks
        if (_type == HyperlinkType.DOCUMENT) {
            setLocation(address);
        }
    }

    @SuppressWarnings("fall-through")
    private void validate(String address) {
        switch (_type) {
            // email, path to file and url must be valid URIs
            case EMAIL:
            case FILE:
            case URL:
                try {
                    new URI(address);
                } catch (URISyntaxException e) {
                    throw new IllegalArgumentException("Address of hyperlink must be a valid URI", e);
                }
                break;
            case DOCUMENT:
                // currently not evaluating anything.
                break;
            default:
                throw new IllegalStateException("Invalid Hyperlink type: " + _type);
        }
    }

那么问题来了。。。假如需要跳转本地文件,这个地址究竟应该怎么写呢~

展开
收起
爱吃鱼的程序员 2020-06-06 09:23:56 2057 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>\\换成/</p> 
    

    link.setAddress("file://../lala.jpg");

     

                            好像是这么一回事~~~
    
    2020-06-06 09:24:10
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载