高效转换Excel表格为Word表格的方法与技巧探索
954
2022-05-29
欢迎您成为我的读者,希望这篇文章能给你一些帮助。
前言
今天这篇文章,咱们来看看使用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、行距设置
单倍为默认值(240twip)不需设置
1.5倍=240X1.5=360twip
2倍=240X2=480twip
m_p.AddNewPPr().AddNewSpacing().line = "400";//行距固定20磅 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、添加脚注内容
其实脚注内容就是之前格式的反复利用。
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
寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦、转发 谢谢。
很高兴能和您成为朋友。
C#
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。