POI导出word文档里的符号,亲测有效

word文档里的符号字体是Wingdings,选中需要插入的符号,它会有显示对于的字符代码,字符编码是Unicode

 

 

 比如我现在选中了一个打勾方框符号,可以看到它的字符代码为“00FE”,所以我们在代码给XWPFRun对象设置的文本内容就是“\u00FE”,需要注意的是:字符代码前要加上"\u"表示内容为unicode编码

下面是导出文档的代码:

 1 import java.io.File;
 2 import java.io.FileNotFoundException;
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 import java.io.UnsupportedEncodingException;
 6 
 7 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 8 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 9 import org.apache.poi.xwpf.usermodel.XWPFRun;
10 
11 public class DownloadWordSymbol {
12 
13     public static void main(String[] args) {
14         //生成一个文档对象
15         XWPFDocument document = new XWPFDocument();
16         XWPFParagraph paragraph = document.createParagraph();  //创建一个段落
17         XWPFRun run = paragraph.createRun();  //创建段落里的一段文本
18         run.setFontFamily("Wingdings");//设置文本字体
19         run.setText("\u00FE");//往文本里添加一个打勾方框符号
20         
21         //导出word文档,放在D盘
22         String fileName = "D:/poi导出word文档符号.docx";
23         //设置文档编码格式为UTF-8
24         String encode = System.getProperty("file.encoding"); 
25         try {
26             fileName = new String(fileName.getBytes("UTF-8"),encode);
27         } catch (UnsupportedEncodingException e1) {
28             e1.printStackTrace();
29         }
30         try {
31             FileOutputStream fout = new FileOutputStream(fileName);
32             document.write(fout);
33             fout.close();
34         } catch (FileNotFoundException e) {
35             e.printStackTrace();
36         } catch (IOException e) {
37             e.printStackTrace();
38         }
39         System.out.println("生成文档成功");
40     }
41 
42 }

 

以下是导出的效果:

 

 

如果想了解更多关于使用POI导出word文档的方法,可以看另一篇 文章:

java使用POI导出word文档,包含文本、表格、图片:https://www.cnblogs.com/dqccc/p/13836720.html

posted @ 2020-10-20 12:47  要不要买菜  阅读(3018)  评论(0编辑  收藏  举报