知识养成了思想,思想同时又在融化知识。这篇文章主要讲述#yyds干货盘点# NPOI在Word中的简单用法汇总相关的知识,希望能为你提供帮助。
前言
今天这篇文章,咱们来看看使用NPOI操作Word都有哪些方法。
对于Word文件,前天的文章介绍了要生成一个Word文件需要
五步。
1、初始化文档类XWPFDocument;
2、场景主标题段落
3、自定义内容
4、创建页脚
5、写入文件
创建文档
文档在NPOI用XWPFDocument类进行操作,首先需要实例化一个XWPFDocument类,用于后期生成文档类的操作。
XWPFDocument m_Docx = new XWPFDocument();
页面设置
实例化好之后需要对Word文档进行设置,主要设置其显示像素,页面的大小等。
CT_SectPr m_SectPr = newCT_SectPr();
//页面设置A4横向m_SectPr.pgSz.w = (ulong)16838;
m_SectPr.pgSz.h = (ulong)11906;
m_Docx.Document.body.sectPr = m_SectPr;
创建段落
对于Word文档的操作都是在文档中段落里面完成的。比如我想新建一行文字,就必须先创建段落,后在段落中进行文字的添加,往Word文档中添加表格和图片也是同样的道理。
//创建段落对象
XWPFParagraph p1 = m_Docx .CreateParagraph();
创建表格
XWPFTable oneTable = m_Docx.CreateTable(6, 5);
oneTable.Width = 1000 * 5;
/* 设置列宽 */
oneTable.SetColumnWidth(0, 200);
oneTable.SetColumnWidth(1, 300);
oneTable.GetRow(0).GetCell(0).SetParagraph(SetCellText(doc, tableTop, "测试"));
样式设置
1、段落居中显示
//字体居中
p1.Alignment = ParagraphAlignment.CENTER;
2、文字加粗
XWPFRun runTitle = p1.CreateRun();
runTitle.IsBold = true;
runTitle.SetText("测试");
runTitle.FontSize = 16;
runTitle.SetFontFamily("宋体", FontCharRange.None);
//设置雅黑字体
3、设置单元格样式
CT_P para = new CT_P();
XWPFParagraph pCell = new XWPFParagraph(para, table.Body);
pCell.Alignment = align;
/字体设置
XWPFRun r1c1 = pCell.CreateRun();
r1c1.SetText(setText);
r1c1.FontSize = 11;
r1c1.SetFontFamily("宋体", FontCharRange.None);
//设置高度
r1c1.SetTextPosition(textPos);
4、段行缩进
gp.IndentationFirstLine=(int)100;
5、行距设置
m_p.AddNewPPr().AddNewSpacing().lineRule= ST_LineSpacingRule.exact;
6、行高设置
m_Row.GetCTRow().AddNewTrPr().AddNewTrHeight().val= (ulong)426;
m_NewRow.AddNewTrPr().AddNewTrHeight().val= (ulong)426;
7、添加脚注内容其实脚注内容就是之前格式的反复利用。
【#yyds干货盘点# NPOI在Word中的简单用法汇总】int Id =m_ftns.GetFootnotesList().Count;
CT_FtnEdn m_ftnedn = new CT_FtnEdn();
m_ftnedn.id = Id.ToString();
CT_P m_FtnEdnxmlP =m_ftnedn.AddNewP();
CT_PPr m_FtnEdnxmlPPr =m_FtnEdnxmlP.AddNewPPr();
m_FtnEdnxmlPPr.AddNewPStyle().val = " a6" ;
m_FtnEdnxmlPPr.AddNewRPr().rFonts = new CT_Fonts();
m_FtnEdnxmlPPr.AddNewRPr().rFonts.hint = ST_Hint.eastAsia;
CT_R m_FtnEdnxmlR =m_FtnEdnxmlP.AddNewR();
m_FtnEdnxmlR.AddNewRPr().rStyle = new CT_String();
m_FtnEdnxmlR.AddNewRPr().rStyle.val = " a7" ;
m_FtnEdnxmlR.Items = newSystem.Collections.ArrayList();
m_FtnEdnxmlR.Items.Add(new CT_Empty());
m_FtnEdnxmlR.ItemsElementName = new List< RunItemsChoiceType> ();
m_FtnEdnxmlR.ItemsElementName.Add(RunItemsChoiceType.footnoteRef);
m_FtnEdnxmlR = m_FtnEdnxmlP.AddNewR();
m_FtnEdnxmlR.AddNewT().Value = https://www.songbingjia.com/android/" " ;
m_FtnEdnxmlR = m_FtnEdnxmlP.AddNewR();
m_FtnEdnxmlR.AddNewT().Value = https://www.songbingjia.com/android/strFtnEdn; //" 脚注test内容
XWPFFootnotem_fn = m_ftns.AddFootnote(m_ftnedn);
### 寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。
>
原创不易,给个关注。我是**阿辉**,感谢您的阅读,如果对你有帮助,麻烦点赞、转发谢谢。很高兴能和您成为朋友。
![底部二维码1.png](https://s2.51cto.com/images/20220224/1645710303326854.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
推荐阅读
- #yyds干货盘点#让后端写个API文档就有那么难吗()
- 北亚数据恢复DELL存储服务器硬盘坏道,SMART的错误冗余级别已经超过阈值导致存储不可用的数据恢复案例
- React vs Vue(谁是2022年的最佳框架())
- 使用 SolidityWeb3 和 Vue.js 创建区块链游戏
- web 自动化岗位常见面试题
- Java异常处理
- #yyds干货盘点# 学python,怎么能不学习scrapy呢,这篇博客带你学会它
- #yyds干货盘点# CSS盒子模型
- #yyds干货盘点#JUnit5学习之六(参数化测试(Parameterized Tests)基础)