Java使用Poi实现导出Word段落以及表格,XWPFParagraph和XWPFRun详解

更新时间:2023-06-07 08:18:31 阅读: 评论:0

唐山面积Java使⽤Poi实现导出Word段落以及表格,XWPFParagraph和XWPFRun详解导出段落
public void exportSummarizeWord(HttpServletRespon respon, Integer id){
Summarize summarize = baMapper.lectById(id);
if(summarize!=null){
XWPFDocument doc =new XWPFDocument();// 创建Word⽂件
lectParagraph(doc, ParagraphAlignment.CENTER,"年度⼯作总结",true,20,20);
lectParagraph(doc, ParagraphAlignment.LEFT,"名称:"+Name(),true,16,20);
lectParagraph(doc, ParagraphAlignment.LEFT,"主体:"+Implement(),true,16,20);
lectParagraph(doc, ParagraphAlignment.LEFT,"级别:"+Level(),true,16,20);
lectParagraph(doc, ParagraphAlignment.LEFT,"⼀、基本运⾏情况",true,16,20);
lectParagraph(doc, ParagraphAlignment.Operation(),fal,12,5);
lectParagraph(doc, ParagraphAlignment.LEFT,"⼆、科技创新情况",true,16,20);
lectParagraph(doc, ParagraphAlignment.Science(),fal,12,5);
lectParagraph(doc, ParagraphAlignment.LEFT,"三、年度主要开展",true,16,20);
lectParagraph(doc, ParagraphAlignment.Work(),fal,12,5);
lectParagraph(doc, ParagraphAlignment.LEFT,"四、⽬前存在的问题和困难",true,16,20);
lectParagraph(doc, ParagraphAlignment.Problem(),fal,12,5);
lectParagraph(doc, ParagraphAlignment.LEFT,"五、⼯作计划",true,16,20);
lectParagraph(doc, ParagraphAlignment.Plan(),fal,12,5);
try{
respon.tCharacterEncoding("UTF-8");
respon.tHeader("content-Type","application/vnd.ms-excel");
respon.tHeader("Content-Disposition",
"attachment;filename="+ de("年度总结.docx","UTF-8"));
//excel导出的路径和名称
OutputStream out = OutputStream();
doc.write(out);
out.clo();
}catch(IOException e){
e.printStackTrace();
}
}
}
private static void lectParagraph(XWPFDocument doc,ParagraphAlignment pa,String text,Boolean bold,Integer size,Integer position){
XWPFParagraph p = null;// 新建⼀个段落
XWPFRun r = null;//创建段落⽂本
p = ateParagraph();
r = p.createRun();
//对齐⽅式
p.tAlignment(pa);
//字体对齐⽅式:1左对齐 2居中3右对齐
//p.tFontAlignment(2);
//⽂本内容
r.tText(text);
我是你的小甜甜
//是否加粗
r.tBold(bold);
//字体⼤⼩
r.tFontSize(size);
//⾏间距(我测试的正常⽂本间距为5,标题间距20)
r.tTextPosition(position);
}
导出效果图为
导出表格:
XWPFDocument doc =new XWPFDocument();// 创建Word⽂件//创建⼀个6⾏8列的表格
XWPFTable table1 = ateTable(6,8);
//列宽⾃适应焦作博爱
table1.tWidthType(TableWidthType.AUTO);
// 获取到刚刚插⼊的⾏第⼀⾏,下标为0
XWPFTableRow row1 = Row(0);
// 设置单元格内容
XWPFTableRow row2 = Row(1);
XWPFTableRow row3 = Row(2);
XWPFTableRow row4 = Row(3);
国内那个护肤品比较好
XWPFTableRow row5 = Row(4);
XWPFTableRow row6 = Row(5);
Practitioner()!=null){
doc.tTable(0, table1);
XWPFParagraph对象的属性详解
创建⽂本对象
XWPFDocument docxDocument =new XWPFDocument();
创建段落对象
XWPFParagraph p1 = ateParagraph();
p1.tAlignment(ParagraphAlignment.LEFT);
p1.tBorderBetween(Borders.APPLES);
p1.tBorderBottom(Borders.APPLES);
p1.tBorderLeft(Borders.APPLES);指定应显⽰在左边页⾯指定段周围的边界。
p1.tBorderRight(Borders.ARCHED_SCALLOPS);指定应显⽰在右侧的页⾯指定段周围的边界。
p1.tBorderTop(Borders.ARCHED_SCALLOPS);指定应显⽰上⽅⼀组有相同的⼀组段边界设置的段落的边界。这⼏个是对段落之间的格式的统⼀,相当于格式刷
p1.tFirstLineIndent(99);//---正⽂宽度会稍微变窄
p1.tFontAlignment(1);//---段落的对齐⽅式 1左 2中 3右 4往上左不可写0和负数
p1.tIndentationFirstLine(400);//---⾸⾏缩进,指定额外的缩进,应适⽤于⽗段的第⼀⾏。
p1.tIndentationHanging(400);//---⾸⾏前进,指定的缩进量,应通过第⼀⾏回到开始的⽂本流的⽅向上移动缩进从⽗段的第⼀⾏中删除。
p1.tIndentationLeft(400);//---整段缩进(右移)指定应为从左到右段,该段的内容的左边的缘和这⼀段⽂字左边的距和右边⽂本边距和左段权中的那段⽂本的右边缘之间的缩进,如果省略此属性,则应假定其值为零。呈批件
p1.tIndentationRight(400);//---指定应放置这⼀段,该段的内容从左到右段的右边缘的正确⽂本边距和右边⽂本边距和左段权中的那段⽂本的右边缘之间的缩进,如果省略此属性,则应假定其值为零。
p1.tIndentFromLeft(400);//---整段右移
p1.tIndentFromRight(400);
p1.tNumID(BigInteger.TEN);
p1.tPageBreak(true);//--指定当渲染此分页视图中的⽂档,这⼀段的内容都呈现在⽂档中的新页的开始。
p1.tSpacingAfter(6);//--指定应添加在⽂档中绝对单位这⼀段的最后⼀⾏之后的间距。
p1.tSpacingAfterLines(6);//--指定应添加在此线单位在⽂档中的段落的最后⼀⾏之后的间距。
p1.tSpacingBefore(6);//--指定应添加上⾯这⼀段⽂档中绝对单位中的第⼀⾏的间距。
p1.tSpacingBeforeLines(6);//--指定应添加在此线单位在⽂档中的段落的第⼀⾏之前的间距。
p1.tSpacingLineRule(LineSpacingRule.AT_LEAST);//--指定⾏之间的间距如何计算存储在⾏属性中。
p1.tStyle("");//--此⽅法提供了样式的段落,这⾮常有⽤.
p1.tVerticalAlignment(TextAlignment.CENTER);//---指定的⽂本的垂直对齐⽅式将应⽤于此段落中的⽂本
西芹炒百合的做法
p1.tWordWrapped(true);//--此元素指定是否消费者应中断超过⼀⾏的⽂本范围,通过打破这个词(打破⼈物等级)的两⾏或通过移动到下⼀⾏(在词汇层⾯上打破)这个词的拉丁⽂字。
XWPFRun 参数详解
XWPFDocument docxDocument =new XWPFDocument();
创建段落对象
XWPFParagraph p1 = ateParagraph();
XWPFRun ateRun();//p1.createRun()将⼀个新运⾏追加到这⼀段
tText(String value)或tText(String value,int pos)
r1.tText(data);
r1.tTextPosition(20);//这个相当于设置⾏间距的,此元素指定⽂本应为此运⾏在关系到周围⾮定位⽂本的默认基线升降的量。不是真正意义上的⾏间距r1.tStrike(true);//---设置删除线的,坑⼈
r1.tStrikeThrough(true);//也是设置删除线,可能有细微的区别吧
r1.tEmbosd(true);//变的有重影(变⿊了⼀点)
r1.tDoubleStrikethrough(true);//设置双删除线
r1.tColor("33CC00");//---设置字体颜⾊
r1.tFontFamily("fantasy");
r1.tFontFamily("cursive");//---设置ASCII(0 - 127)字体样式
r1.tBold(jiacu);//---"加⿊加粗"
r1.tFontSize(size);//---字体⼤⼩
r1.tImprinted(true);//感觉与tEmbosd(true)类似,有重影
r1.tItalic(true);//---⽂本会有倾斜,是⼀种字体?
百分之的英文r1.tShadow(true);//---⽂本会变粗有重影,与前⾯两个有重影效果的⽅法感觉没什么区别公司员工激励方案
r1.tSmallCaps(true);//---改变了英⽂字母的格式
r1.tSubscript(VerticalAlign.BASELINE);//---valign垂直对齐的
r1.tUnderline(UnderlinePatterns.DASH);//--填underline type设置下划线
r1.tDocumentbackground(doc,"FDE9D9");//设置页⾯背景⾊
r1.addNewPage(doc, BreakType.PAGE);

本文发布于:2023-06-07 08:18:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/892321.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指定   设置   段落   缩进   间距   导出   打破
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图