C#使用NPOI导出Word文件
【摘要】 欢迎您成为我的读者,希望这篇文章能给你一些帮助。 前言昨天和大家一起学习使用NPOI导出Excel文件的操作,今天咱们看看这个插件在Word中是如何操作的。如何可以将数据快速的导出到Word中。在操作Word的时候,需要用到的组件是XWPFDocument类,通过它来操作将数据写入Word中,其中可以对Word进行简单的设置,比如添加图片,添加表格,字体大小颜色做调整等。具体步骤如下:1、初...
欢迎您成为我的读者,希望这篇文章能给你一些帮助。
前言
昨天和大家一起学习使用NPOI导出Excel文件的操作,今天咱们看看这个插件在Word中是如何操作的。如何可以将数据快速的导出到Word中。
在操作Word的时候,需要用到的组件是XWPFDocument类,通过它来操作将数据写入Word中,
其中可以对Word进行简单的设置,比如添加图片,添加表格,字体大小颜色做调整等。
具体步骤如下:
1、初始化文档类XWPFDocument;
2、场景主标题段落
3、自定义内容
4、创建页脚
5、写入文件
public void Save_Word(){}
{
using (FileStream fs=new FileStream(sfd.FileName, FileMode.OpenOrCreate))
{
//1、初始化文档
XWPFDocument m_Doc = new XWPFDocument();
CT_SectPr m_SectPrs = new CT_SectPr(); //设置页面格式(宽度) A4横向
m_SectPrs.pgSz.w = (ulong)16838;
m_SectPrs.pgSz.h = (ulong)11906;
m_Doc.Document.body.sectPr = m_SectPrs;
//2、创建主标题段落
XWPFParagraph p1 = m_Doc.CreateParagraph();
p1.Alignment = ParagraphAlignment.LEFT;
XWPFRun row1 = p1.CreateRun();
row1.FontFamily = "黑体";
row1.FontSize = 14;
row1.IsBold = true;
row1.SetText("测试"); //主标题
CT_P doc_p1 = m_Doc.Document.body.GetPArray(0);
doc_p1.AddNewPPr().AddNewJc().val = ST_Jc.center; //段落水平居中 标题
//3、自定义内容
XWPFParagraph p2 = m_Doc.CreateParagraph();
p2.Alignment = ParagraphAlignment.LEFT;
SettingXWPFRowStyle(p2.CreateRun(), "测试内容", false);
//4、创建页脚
m_Doc.Document.body.sectPr = new CT_SectPr();
CT_SectPr m_SectPr = m_Doc.Document.body.sectPr;
CT_Ftr m_ftr = new CT_Ftr();
//m_ftr.AddNewP().AddNewR().AddNewT().Value = DateTime.Now.ToString("yyyy-MM-dd");
m_ftr.AddNewP().AddNewR().AddNewT().Value ="1";
XWPFRelation frelation = XWPFRelation.FOOTER;
XWPFFooter m_f = (XWPFFooter)m_Doc.CreateRelationship(frelation, XWPFFactory.GetInstance(), m_Doc.FooterList.Count + 1);
m_f.SetHeaderFooter(m_ftr);
m_f._getHdrFtr().AddNewP().AddNewPPr().AddNewJc().val = ST_Jc.center;
CT_HdrFtrRef m_HdrFtr = m_SectPr.AddNewFooterReference();
m_HdrFtr.type = ST_HdrFtr.@default;
m_HdrFtr.id = m_f.GetPackageRelationship().Id;
//使得页脚居中显示
XWPFParagraph pFooter = m_f.Paragraphs[0];
pFooter.Alignment = ParagraphAlignment.CENTER; //居中
pFooter.Runs[0].FontSize = 12;
//5、写入到文件
m_Doc.Write(fs);
}
}
通过上面的代码就可以实现,使用NPOI导出数据到word中。
这里面还有很多细节性的东西,比如标题加粗,页面居中,创建表格,表格数据合并等。
NPOI目前来说还是很强大的,对于摆脱office组件的限制来说,效果特别好,但是它在处理大量数据时还是存在一些问题。
当数据量过大超过它的限制,就会报内存溢出的Bug。这时候使用者就需要衡量,看项目中是否需要引用。
对于NPOI一些细节性的东西放在下一篇文章来做介绍。
寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。
很高兴能和您成为朋友。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)