首页 > 其他分享 >poi3.13生成多级标题

poi3.13生成多级标题

时间:2023-02-20 18:33:45浏览次数:38  
标签:style addCustomHeadingStyle newInstance 多级 Factory 标题 strStyleId poi3.13 ctStyle

自定义标题的层级关系

/**
     * 增加自定义标题样式。这里用的是stackoverflow的源码
     *
     * @param docxDocument 目标文档
     * @param strStyleId   样式名称
     * @param headingLevel 样式级别
     */
    private static void addCustomHeadingStyle(XWPFDocument docxDocument, String strStyleId, int headingLevel) {

        CTStyle ctStyle = CTStyle.Factory.newInstance();
        ctStyle.setStyleId(strStyleId);

        CTString styleName = CTString.Factory.newInstance();
        styleName.setVal(strStyleId);
        ctStyle.setName(styleName);

        CTDecimalNumber indentNumber = CTDecimalNumber.Factory.newInstance();
        indentNumber.setVal(BigInteger.valueOf(headingLevel));

        // lower number > style is more prominent in the formats bar
        ctStyle.setUiPriority(indentNumber);

        CTOnOff onoffnull = CTOnOff.Factory.newInstance();
        ctStyle.setUnhideWhenUsed(onoffnull);

        // style shows up in the formats bar
        ctStyle.setQFormat(onoffnull);

        // style defines a heading of the given level
        CTPPr ppr = CTPPr.Factory.newInstance();
        ppr.setOutlineLvl(indentNumber);
        ctStyle.setPPr(ppr);

        XWPFStyle style = new XWPFStyle(ctStyle);

        // is a null op if already defined
        XWPFStyles styles = docxDocument.createStyles();

        style.setType(STStyleType.PARAGRAPH);
        styles.addStyle(style);

    }
**使用方式**
//创建文档对象
        XWPFDocument document = new XWPFDocument();
        addCustomHeadingStyle(document, "标题 1", 1);
        addCustomHeadingStyle(document, "标题 2", 2);
        addCustomHeadingStyle(document, "标题 3", 3);

标签:style,addCustomHeadingStyle,newInstance,多级,Factory,标题,strStyleId,poi3.13,ctStyle
From: https://blog.51cto.com/u_15973676/6069213

相关文章

  • poi3.13生成表格
    表格生成和换页方法//创建试验设计表格XWPFTabletableBanBen=document.createTable();//设置表级别单元格边距tableBanBen.setCellMa......
  • window.open打开新标签同时修改标签标题
    需求我们在做类似预览的功能时,需要在新窗口打开页面,但页面标题往往需要我们手动定义修改,以下有两种方式可供参考:方案1、直接修改title内容1consturl='http://xxx.xx......
  • 多级缓存机制(包括缓存的主动过期、定时过期、被动过期)源码剖析
    1多级缓存入口2初始化缓存3二级缓存(读写缓存)readWriteCacheMap,每隔180s就会主动过期4一级缓存(只读缓存)readOnlyCacheMap,每隔30s自动刷新一次(定时过期)5......
  • word样式多级标题变成黑块/黑线
      我在写文档(客户给的word模板)时,突然发现3级标题内容,变成了竖线。使用网上查询的“按组合键『Ctrl+Shift+S』,打开『应用样式』对话框,点击『重新应用』”,问题虽然......
  • 中文标题相似度检测
    前言对中文标题使用余弦相似度算法和编辑距离相似度分析进行相似度分析。准备数据集part1本次使用的数据集来源于前几年的硕士学位论文,可根据实际需要更换。结构如下所......
  • 「小说」还没想好标题
    Section1“lzx同学?请问……现在有空吗?”那是在一节不能再普通的程序设计课之后。正当我合上笔记本电脑,打了个哈欠,准备收拾东西走人时,一个温柔的声音从背后叫住了我。我......
  • node获取网页内容(标题、摘要、图片)
    首先有node,然后是引入模块,这是必备fs模块写入文件path模块定义文件路径request模块定义发送请求(requests可能要好点,各位如果需要改的自行百度)cheerio模块定义内容加载成DO......
  • 多级缓存降低高并发压力
    多级缓存简介1.传统缓存传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图:存在下面的问题:•由于redis的承受能力大于tomcat,所以请求要经......
  • HTML 标题
    HTML标题标题(Heading)是通过<h1>-<h6>标签进行定义的。<h1>定义最大的标题。<h6>定义最小的标题。实例<h1>这是一个标题。</h1><h2>这是一个标题。</h2><h3......
  • C语言--多级指针
    可以定义指针的指针保存其他指针变量的地址eg:Typev;Type*pv=&v;Type**ppv=&pv;Type***pppv=&ppv;...二维数组二维数组的本质就是一......