java poi 设置标题_poi生成Word时指定文本样式,如“正文”,“标题1”,“标题2”等...
POI生成Word時,設(shè)置段落的樣式
String style = "2"; //標(biāo)題2的樣式
XWPFParagraph xwpfParagraph = doc.insertNewParagraph(run);
xwpfParagraph.setStyle(style);
其實(shí)設(shè)置其他的樣式都一樣。
例如:你想設(shè)置你的樣式為“標(biāo)題2”(“標(biāo)題2”只是你在word里看到的標(biāo)題名稱,實(shí)際上在xml中的名稱可能不一樣)
word里:我是標(biāo)題2的樣式 --這個段落在word里設(shè)置了標(biāo)題2的樣式 xml里:
我
是標(biāo)題
2
的樣式
而樣式的定義是這樣的(這些都可以在word轉(zhuǎn)成xml的內(nèi)容里找到):
到此我們就知道,設(shè)置段落樣式“標(biāo)題2”的方法就是: xwpfParagraph.setStyle("2");
上面樣式的xml里也可以看到,標(biāo)題3的樣式值是3,所以設(shè)置標(biāo)題3的方法就是: xwpfParagraph.setStyle("3");
問題來了!
如何知道樣式的值呢?
代碼如下:
/**
* 查找文檔樣式值
* @param document 文檔類
* @param styleName 樣式名稱
* @return 樣式值
* @throws IOException
* @throws XmlException
*/
public static String getStyleValue(XWPFDocument document, String styleName) throws IOException, XmlException {
if (styleName == null || styleName.length() == 0) {
return null;
}
CTStyles styles = document.getStyle();
CTStyle[] styleArray = styles.getStyleArray();
for (CTStyle style : styleArray) {
//用包含會好點(diǎn)
if (style.getName().getVal().contains(styleName)) {
return style.getLink().getVal();
}
}
return null;
}
在word里的樣式名稱是 標(biāo)題 2,但xml里就是 ,也就是 標(biāo)題 2 Char 所以我用contains( )方法。
注意 如果不生效,就先新建一個文檔,把段落設(shè)置成想要的樣式,然后看看段落樣式的值是多少就可以了。 我覺得大部分問題的解決方法都可以去看xml里的值,然后再用代碼去設(shè)置值就好了。
總結(jié)
以上是生活随笔為你收集整理的java poi 设置标题_poi生成Word时指定文本样式,如“正文”,“标题1”,“标题2”等...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aut0cad2010卸载工具_解决软件
- 下一篇: 1.59TB《全球 12.5 米高程DE