新西兰天维网社区

 找回密码
登录  注册
搜索
热搜: 移民 留学
查看: 421|回复: 4
打印 上一主题 下一主题

[工作] 求JAVA大神进写word文档问题 [复制链接]

Rank: 9Rank: 9Rank: 9

升级  39.2%

UID
68029
热情
594
人气
1270
主题
50
帖子
843
精华
0
积分
1392
阅读权限
20
注册时间
2006-3-26
跳转到指定楼层
楼主
发表于 2015-6-3 11:52:18 |只看该作者 |倒序浏览 微信分享
用java 的 poi-xwpf 写 WORD DOCUMENT.创建一个XWPFRun 后只能定义一个字体.如果中途换的话就以最后一个设置为主.
请问用一个如何写不同格式
如下程序比如设置setbold(true)就是用黑体写,如果在下面用setbold(false)就取消.但问题是它不是在你要写的程序以下取消(比如要DATE 以后的不要黑体前面的保留黑体).但是他不是这样的而是全部所有的都全没有黑体..
如果创建几个XWPFRUN交互使用可以解决问题,但是因为文件格式字体太多这样一来写起来很麻烦.请教高人.有什么好的办法.还是有什么method可以用.
code片段如下
XWPFParagraph paragraph = document.createParagraph();
                                                             XWPFRun run = paragraph.createRun();
                                                             //start writing document
                                                             run.setBold(true); //set bold
                                                             run.setFontSize(12); //set size
                                                             run.setText(field1.getText().isEmpty()?"Company name":field1.getText());//company name
                                                             run.addCarriageReturn(); //separate previous text from break
                                                             run.addCarriageReturn();
                                                             //run.setBold(false);
                                                             Date d = new Date(System.currentTimeMillis()); //get date
                                                             run.setText(d.toString());
                                                             run.addCarriageReturn();
                                                             run.addCarriageReturn(); run.setText("Attention: " + ((field2.getText().isEmpty()&&field3.getText().isEmpty())?"Name":field2.getText() +" " + field3.getText())); //full name
                                                             run.addCarriageReturn();
                                                             run.addCarriageReturn();
                                                             run.setText("Dear "+ (field2.getText().isEmpty()?"FirstName":field2.getText())+","); //dear first name
                                                             run.addCarriageReturn();
                                                             run.addCarriageReturn();
                                                             ecoStarDocument current = new ecoStarDocument(); //create ecostar document to read information
                                                             for(String item: current.ecoStrHeader()){
                                                               run.setText(item);
                                                               run.addCarriageReturn();
                                                               run.addCarriageReturn();
                                                             }


使用道具 举报

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

升级  0%

UID
359101
热情
53273
人气
62242
主题
1022
帖子
30920
精华
21
积分
73930
阅读权限
30
注册时间
2013-4-12

10周年纪念

沙发
发表于 2015-6-3 12:01:55 |只看该作者 微信分享
嘿嘿
帮顶了。。

使用道具 举报

Rank: 10Rank: 10Rank: 10

升级  33.73%

UID
179867
热情
1393
人气
2141
主题
33
帖子
1404
精华
0
积分
2506
阅读权限
30
注册时间
2009-4-30
板凳
发表于 2015-6-3 12:18:50 |只看该作者 微信分享
想方便点的话,创建自己的createRun method,pass in custom parameters(font size, style)

使用道具 举报

Rank: 9Rank: 9Rank: 9

升级  39.2%

UID
68029
热情
594
人气
1270
主题
50
帖子
843
精华
0
积分
1392
阅读权限
20
注册时间
2006-3-26
地板
发表于 2015-6-3 14:20:45 |只看该作者 微信分享
本帖最后由 weiwei_yuki 于 2015-6-3 13:36 编辑

试一下!!!!!!!!!

使用道具 举报

Rank: 9Rank: 9Rank: 9

升级  39.2%

UID
68029
热情
594
人气
1270
主题
50
帖子
843
精华
0
积分
1392
阅读权限
20
注册时间
2006-3-26
5#分享本帖地址
发表于 2015-6-3 15:02:07 |只看该作者 微信分享
cannot change each run like a pen. need create a new pen for different font size and style.

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版| 联系论坛客服| 广告服务| 招贤纳士| 新西兰天维网

GMT+13, 2025-2-8 12:49 , Processed in 0.019030 second(s), 14 queries .

Powered by Discuz! X2 Licensed

Copyright 2001- Sky Media Limited, All Rights Reserved.

回顶部