1. 程式人生 > 實用技巧 >POI使用筆記,複用樣式,新增書籤等

POI使用筆記,複用樣式,新增書籤等

  最近遇到需求需要給文件指定run上新增書籤,網上查到的方法也是需要在run建立之前和之後分別新增書籤的start和end,可檢視http://www.javaear.com/question/47182971.html

  試驗過程:建立新的文件,新的段落,呼叫addRun將原來的run add進去,但是後面發現新文件裡面有run下載下來卻是一片空白,後面發現addRun和createRun的區別是createRun時候繫結到了指定paragraph並且還往iruns裡面添加了

  所以後面重寫了XWPFParagraph的addRun方法,與createRun保持一致,依舊沒有效果,也沒有找到原因,網上也沒有查到相關資料,只有換成建立新的文件,新的段落,新的run,然後將原文件段落樣式以及run的樣式複用過來。

  段落樣式複用:主要是換行,縮排等

newParagraph.getCTP().setPPr(content.getCTP().getPPr());//設定段落樣式,換行,空格等

  run樣式複用:字號,顏色,字型等

XWPFRun newRun = paragraph.createRun();
newRun.setText(run.text());//文字資料
newRun.getCTR().setRPr(run.getCTR().getRPr());//樣式

  新增書籤:

CTBookmark ctBookmark = paragraph.getCTP().addNewBookmarkStart();
ctBookmark.setName(colorName 
+ "-" + index); ctBookmark.setId(BigInteger.valueOf(index)); addNewRun(paragraph, run);//此方法是上面樣式複用方法 paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(index));

  生成效果: