zoukankan      html  css  js  c++  java
  • poi操作Word创建超链接

    项目引入poi:

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.16</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-scratchpad</artifactId>
        <version>3.16</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.16</version>
    </dependency>

    实现逻辑:

    public static void appendExternalHyperlink(String url, String text, XWPFParagraph paragraph) {
            // Add the link as External relationship
            String id = paragraph
                    .getDocument()
                    .getPackagePart()
                    .addExternalRelationship(url,
                            XWPFRelation.HYPERLINK.getRelation()).getId();
            // Append the link and bind it to the relationship
            CTHyperlink cLink = paragraph.getCTP().addNewHyperlink();
            cLink.setId(id);
            
            // Create the linked text
            CTText ctText = CTText.Factory.newInstance();
            ctText.setStringValue(text);
            CTR ctr = CTR.Factory.newInstance();
            CTRPr rpr = ctr.addNewRPr();
            
            //设置超链接样式
            CTColor color = CTColor.Factory.newInstance();
            color.setVal("0000FF");
            rpr.setColor(color);
            rpr.addNewU().setVal(STUnderline.SINGLE);
            
            //设置字体
            CTFonts fonts = rpr.isSetRFonts() ? rpr.getRFonts() : rpr.addNewRFonts();
            fonts.setAscii("宋体");
            fonts.setEastAsia("宋体");
            fonts.setHAnsi("宋体");
     
            //设置字体大小
            CTHpsMeasure sz = rpr.isSetSz() ? rpr.getSz() : rpr.addNewSz();
            sz.setVal(new BigInteger("24"));
     
            ctr.setTArray(new CTText[] { ctText });
            // Insert the linked text into the link
            cLink.setRArray(new CTR[] { ctr });
            
            //设置段落居左
            paragraph.setAlignment(ParagraphAlignment.LEFT);
            paragraph.setVerticalAlignment(TextAlignment.CENTER);
        }
  • 相关阅读:
    C# 字典类 Dictionary 基本用法 Mark
    SQL语句监测耗时
    jQuery Select Option 操作 删除新增
    C# DataTable 过滤重复数据
    IE8 overflow:hidden 无效问题解决方案
    动态拼接LINQ 查询条件
    解决.net中"未能创建 Mutex”异常
    创建Cookies 包含子健和无子健的创建及用法 做个笔记留着参考
    常用的一些加密算法,留着以备不时之需
    Centos7 nginx安装
  • 原文地址:https://www.cnblogs.com/commissar-Xia/p/11233499.html
Copyright © 2011-2022 走看看