关于JAVA POI WORD操作的一些心得(少见)_setcantsplitrow_初级码虫的博客-CSDN博客

word模板替换

1.在进行word模板字符进行替换的时候,如果将要进行替换的标签${example}在NotePad++中写好,再将它直接粘贴到word模板的对应位置,那么在使用run对象进行遍历的时候,标签就会作为一个整体,不会被拆开。

2.如果时在记事本中写好,再从记事本中粘贴到word模板,那么在使用run对象进行遍历进行替换的时候,他会被拆分为${,example,}三个部分。

3.如果你是直接在word模板中直接编写的${example},那恕我直言,自己debug看看吧,我也不知道能被拆成啥样。

总之,模板中的替换标签,尽量不要在模板中进行编写改动,对,强调一遍,就是${example}这个东西。

word删除边框

记住一点:如果你删除某个单元格的边框,发现删不掉,要想想,这个单元格的某个边框和它相邻的单元格的边框是重合的,你得把他们同时删除。

word表格跨行断页

这个玩意儿网上基本没有,看到这个说明你赚了,我亏了。

row.setCantSplitRow(false);

记住这个方法,每个表格的行,调用一下这个方法,弄出来的表格就不会默认时跨行断页了。(row就是表格的行对象)

word生成超链接

word生成超链接,点击报错:“发生了异常错误”,如果你的链接在浏览器没有问题,那么,大概率是超链接太长了。

word生成标题

这是我写的一个小方法,有用就用

 /**     * 设置标题目录及其样式     * @param document 目标文档     * @param styles 文档样式编辑器 XWPFStyles styles = document.createStyles();     * @param key 标题的ID     * @param headLevel 标题的级别     * @param size 字体大小     * @param color 字体颜色     * @param fontStyle 字体样式     */    private void createThemeHead(XWPFDocument document, XWPFStyles styles, String key, int headLevel, int size, String color, String fontStyle) {        CTStyle ctStyle = CTStyle.Factory.newInstance();        ctStyle.setStyleId(key);         CTString ctString = CTString.Factory.newInstance();        ctString.setVal(key);//绑定id        ctStyle.setName(ctString); //将文本编辑器设置进入样式编辑器中         CTDecimalNumber ctDecimalNumber = CTDecimalNumber.Factory.newInstance();        ctDecimalNumber.setVal(BigInteger.valueOf(headLevel)); //可能是设置标题级别        ctStyle.setUiPriority(ctDecimalNumber); //将标题级别编辑器加入到样式编辑器中         CTOnOff ctOnOff = CTOnOff.Factory.newInstance();        ctStyle.setUnhideWhenUsed(ctOnOff); //使用时不隐藏,加入到样式编辑器        ctStyle.setQFormat(ctOnOff); //在格式栏进行显示         CTPPr ctpPr = CTPPr.Factory.newInstance();        ctpPr.setOutlineLvl(ctDecimalNumber); //定义样式给定级别的标题        ctStyle.setPPr(ctpPr);         XWPFStyle xwpfStyle = new XWPFStyle(ctStyle);         //字体大小        CTHpsMeasure ctHpsMeasure = CTHpsMeasure.Factory.newInstance();        ctHpsMeasure.setVal(BigInteger.valueOf(size));        CTHpsMeasure ctHpsMeasure1 = CTHpsMeasure.Factory.newInstance();        ctHpsMeasure1.setVal(BigInteger.valueOf(size));         CTFonts fonts = CTFonts.Factory.newInstance();        if(fontStyle == null || fontStyle.equals("")) {            fontStyle = "宋体";        }        fonts.setAscii(fontStyle);    //字体         CTRPr ctrPr = CTRPr.Factory.newInstance();        ctrPr.setRFonts(fonts);        ctrPr.setSz(ctHpsMeasure);        ctrPr.setSzCs(ctHpsMeasure1);    //字体大小         CTColor ctColor = CTColor.Factory.newInstance();        ctColor.setVal(hexToBytes(color));        ctrPr.setColor(ctColor);    //字体颜色        xwpfStyle.getCTStyle().setRPr(ctrPr);        xwpfStyle.setType(STStyleType.PARAGRAPH);        styles.addStyle(xwpfStyle);     } /**     * 颜色数据格式转换     * @param hexString     * @return     */    public static byte[] hexToBytes(String hexString) {        HexBinaryAdapter adapter = new HexBinaryAdapter();        byte[] bytes = adapter.unmarshal(hexString);        return bytes;    }

不要随便转载啊!!!!!


原网址: 访问
创建于: 2023-03-22 12:22:18
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论