21 1 2019

最近做项目需要操作Word,用到了Spire.Doc组件,感觉很方便分享一下。

安装方法:直接在NuGet包管理器里面搜索下载安装


对我来说它的功能足够我使用了,我用的比较多的有这几项:

1.向Word插入图片
//实例化一个Document对象
Document doc = new Document();

//添加section和段落
Section section = doc.AddSection();
Paragraph para = section.AddParagraph();

//加载图片到System.Drawing.Image对象, 使用AppendPicture方法将图片插入到段落
Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\测试.png");
DocPicture picture = doc.Sections[0].Paragraphs[0].AppendPicture(image);

//保存到文档
doc.SaveToFile("测试.doc", FileFormat.Docx2010);

它还可以设置样式,有需要的可以去研究以下。

2.复制Word
//新建Word文档1,并加载源文档
Document sourceDoc = new Document("test.docx");
//新建Word文档2,并加载复制内容的目标文档
Document destinationDoc = new Document("target.docx");

//遍历源文档中的所有section,并把内容复制到目标文档
foreach (Section sec in sourceDoc.Sections)
{
foreach (DocumentObject obj in sec.Body.ChildObjects)
{
destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone());
}
}

//保存文档
destinationDoc.SaveToFile("result.docx", FileFormat.Docx2010);
3.合并Word
//初始化两个Document实例并加载两个测试文档
Document doc1 = new Document(@"C:\Users\Administrator\Desktop\测试文档_1.docx");
Document doc2 = new Document(@"C:\Users\Administrator\Desktop\测试文档_2.docx");

//获取doc1的最后一个section
Section lastSection = doc1.LastSection;

//遍历doc2的section和段落,将每一个段落添加到doc1的最后一个section
foreach (Section section in doc2.Sections)
{
foreach (Paragraph paragraph in section.Paragraphs)
{
lastSection.Paragraphs.Add(paragraph.Clone() as Paragraph);
}
}

//保存为新的文档
doc1.SaveToFile("合并文档_2.docx", FileFormat.Docx2010);

还有很多的功能,待进一步使用。

延伸阅读
    发表评论