使用npoi操作Word

首先要准备一个可读写的Word模板文件(.docx)或者什么都不需要,直接实例化一个XWPFDocument 空对象

FileStream fs = new FileStream(Application.StartupPath + "\\模板.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite);//注意FileMode和FileAccess的搭配使用
XWPFDocument doc = new XWPFDocument(fs);//打开07(.docx)以上的版本的文档
//XWPFDocument doc = new XWPFDocument(); //创建新的word文档

然后向Word中插入文字段落或者表格

 XWPFParagraph para1 = doc.CreateParagraph();
 XWPFRun run1 = para1.CreateRun();
 //设置文本的属性
 run1.SetText("测试文本");
 run1.FontSize=14;
 run1.FontFamily = "仿宋";
 run1.IsBold = true;
 run1.SetUnderline(UnderlinePatterns.Single);
 //插入空行
 XWPFParagraph paranull =  doc.CreateParagraph();
 //插入分页符
 para1.IsPageBreak = true;
 //插入表格
 List<XWPFTable> Tables = new List<XWPFTable>();
 doc.CreateTable();//没插入一个table,都需要create一次
 doc.SetTable(i, Tables[0]);//i为插入表格的索引顺序
 //单独对表格新增
 var oprTable = Tables[1];
 XWPFTableRow m_Row=oprTable.InsertNewTableRow(1);//创建一行/并且在某个位置添加一行
 m_Row.AddNewTableCell().SetText ("创建一行仅有一个单元格");
 //XWPFTableRow m_Row2 = oprTable.InsertNewTableRow(2);//创建一行/并且在某个位置添加一行
 m_Row2.AddNewTableCell().SetText("添加的新行");
 //XWPFTableCell cellCt_P = m_Row2.CreateCell();//创建一个单元格,创建单元格时就创建了一个CT_P

 //cellCt_P = m_Row2.CreateCell();
 //cellCt_P = m_Row2.CreateCell();

 单元格行和表
 //CT_Tc cttc = cellCt_P.GetCTTc();
 //CT_TcPr ctPr = cttc.AddNewTcPr();
 ctPr.gridSpan.val = "3";//合并3列
 //ctPr.AddNewVMerge().val = ST_Merge.restart;//合并行
 //cellCt_P.SetText("创建一行仅有一个单元格(合并后)");


 XWPFTableRow m_Row2 = oprTable.InsertNewTableRow(2);//创建一行/并且在某个位置添加一行
 XWPFTableCell tc3 = m_Row2.CreateCell();//创建单元格
 tc3.SetText("创建一行仅有一个单元格(合并后)");
 CT_Tc ct3 = tc3.GetCTTc();
 CT_TcPr cp3 = ct3.AddNewTcPr();
 cp3.gridSpan = new CT_DecimalNumber();
 cp3.gridSpan.val = "3"; //合并3列   


 XWPFTableRow m_Row3 = oprTable.InsertNewTableRow(2);//多个单元格以及合并
 m_Row3.AddNewTableCell().SetText("添加的新行单元格1");
 m_Row3.AddNewTableCell().SetText("添加的新行单元格2");
 m_Row3.AddNewTableCell().SetText("添加的新行单元格3");

输出编辑后的Word

FileStream outFile = new FileStream(outPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
doc.Write(outFile);
outFile.Close();
doc.Close();

参考:C# 生成word文档(NPOI.XWPF)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NPOI是一款强大的.NET平台的开源库,可以用于操作Microsoft Office文件,包括Word文档。下面我将讲解如何使用NPOI操作Word书签。 首先,我们需要导入NPOI的库文件,并引入相应的命名空间。使用NPOI时,我们需要引用NPOI.POIFS、NPOI.HSSF.usermodel或NPOI.XSSF.usermodel、NPOI.HPSF等命名空间。 接下来,我们需要打开Word文档。可以使用NPOI.XWPF.UserModel.XWPFDocument类来加载文档,并创建一个XWPFDocument对象。 要操作Word书签,我们需要知道书签的名称。使用XWPFDocument对象的GetBookmarks()方法可以获取文档中所有的书签。返回的是一个IList对象,可以通过遍历该列表找到所需的书签对象。书签对象包含了书签的名称和位置信息等。 可以使用GetBookmarkStart()和GetBookmarkEnd()方法来获取书签的起始和结束位置。随后,可以使用XWPFDocument对象的RemoveBodyElement()方法来删除书签范围内的内容。 为了在书签范围内插入新内容,可以使用XWPFDocument对象的CreateParagraph()方法创建一个新段落,再将内容插入该段落内。然后,使用XWPFDocument对象的SetParagraph()方法将新段落插入到书签范围内。 最后,记得保存并关闭Word文档。使用XWPFDocument对象的Save()方法可以将修改后的文档保存到指定位置,使用Close()方法关闭文档对象。 通过以上步骤,我们可以使用NPOI操作Word书签。希望以上回答对您有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值