返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#中使用Spire.doc对word的操作方式
  • 849
分享到

C#中使用Spire.doc对word的操作方式

C#使用Spire.docSpire.doc对word操作C# Spire.doc word 2023-01-28 06:01:44 849人浏览 八月长安
摘要

目录使用Spire.doc对Word的操作Word操作汇总结论使用Spire.doc对word的操作 在最近的工程中我们要处理一些word文档。通过在网上的大量搜索,我发现大多数软件

使用Spire.doc对word的操作

在最近的工程中我们要处理一些word文档。通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复。极少数可以完全实现的word组件又要收费。

功夫不负有心人,我们找到了可以满足我们需要的免费的C# word程序库。为了和其他的作比较,我在这里先做以下汇总。希望对大家有帮助。

如何得到?

这个免费版的word 组件可以在Codeplex下载到,你也可以从本文里直接下载msi文件。它还提供了一些源代码。

Word操作汇总

1、打开已有word文件,这是要处理word文件的最基本也是必须的步骤。它提供了三种方法。

方法1:从已知特定的文档中初始化一个新的Document 类的实例

Document document = new Document(@"..\..\Sample.docx");

方法2、从文件中加载一个word文件

Document document = new Document();
document.LoadFromFile(@"..\..\Sample.docx");

方法3、从流文件中加载word文件

Stream stream = File.OpenRead(@"..\..\Sample.docx");
Document document = new Document(stream);

2、如何创建表格 

Document document = new Document();
Section section = document.AddSection();
 
Table table = section.AddTable(true);
table.ResetCells(2, 3);
 
TableRow row = table.Rows[0];
row.IsHeader = true;
 
Paragraph para = row.Cells[0].AddParagraph();
TextRange TR = para.AppendText("Item");
 
para = row.Cells[1].AddParagraph();
TR = para.AppendText("Description");
 
para = row.Cells[2].AddParagraph();
TR = para.AppendText("Qty");
 
document.SaveToFile("WordTable.docx");
 
System.Diagnostics.Process.Start("WordTable.docx");

我们还可以设置行高和列宽

3、如何插入超链接?你可以插入两种超链接,Email 链接和webmail 链接。

Document document = new Document();
Section section = document.AddSection();
 
//Insert URL hyperlink
Paragraph paragraph = section.AddParagraph();
paragraph.AppendText("Home page");
paragraph.ApplyStyle(BuiltinStyle.Heading2);
paragraph = section.AddParagraph();
paragraph.AppendHyperlink("www.e-iceblue.com", "www.e-iceblue.com",HyperlinkType.WEBLink);
 
//Insert email address hyperlink
paragraph = section.AddParagraph();
paragraph.AppendText("Contact US");
paragraph.ApplyStyle(BuiltinStyle.Heading2);
paragraph = section.AddParagraph();
paragraph.AppendHyperlink("mailto:support@e-iceblue.com", "support@e-iceblue.com",HyperlinkType.EMailLink);
 
document.SaveToFile("Hyperlink.docx");
System.Diagnostics.Process.Start("Hyperlink.docx");

4、如何加入注解

Document document = new Document();
Section section = document.AddSection();
 
Paragraph paragraph = section.AddParagraph();
paragraph.AppendText("Home Page of ");
TextRange textRange = paragraph.AppendText("e-iceblue");
 
Comment comment1 = paragraph.AppendComment("www.e-iceblue.com");
comment1.AddItem(textRange);
comment1.FORMat.Author = "Harry Hu";
comment1.Format.Initial = "HH";
 
document.SaveToFile("Comment.docx");
System.Diagnostics.Process.Start("Comment.docx");

5、如何加入书签

Document document = new Document();
Section section = document.AddSection();
 
Paragraph paragraph = section.AddParagraph();
paragraph.AppendText("Home Page of ");
TextRange textRange = paragraph.AppendText("e-iceblue");
 
Comment comment1 = paragraph.AppendComment("www.e-iceblue.com");
comment1.AddItem(textRange);
comment1.Format.Author = "Harry Hu";
comment1.Format.Initial = "HH";
 
document.SaveToFile("Comment.docx");
System.Diagnostics.Process.Start("Comment.docx");

6、合并邮件

Document document = new Document();
document.LoadFromFile("Fax.doc");
 
string[] filedNames = new string[] { "Contact Name", "Fax", "Date" };
 
string[] filedValues = new string[] { "John Smith", "+1 (69) 123456", System.DateTime.Now.Date.ToString() };
 
document.MailMerge.Execute(filedNames, filedValues);
 
document.SaveToFile("MailMerge.doc", FileFormat.Doc);
System.Diagnostics.Process.Start("MailMerge.doc");

7、加入表单,这部分包含创建以及填入表单域。

创建表单

//Add new section to document
Section section = document.AddSection();
 
//Add Form to section
private void AddForm(Section section)
 
//add text input field
TextFormField field
= fieldParagraph.AppendField(fieldId, FieldType.FieldFormTextInput) as TextFormField;
 
//add dropdown field
DropDownFormField list
= fieldParagraph.AppendField(fieldId, FieldType.FieldFormDropDown) as DropDownFormField;
 
//add checkbox field
fieldParagraph.AppendField(fieldId, FieldType.FieldFormCheckBox);

填入表单域

//Fill data from XML file
using (Stream stream = File.OpenRead(@"..\..\..\Data\User.xml"))
{
    XPathDocument xpathDoc = new XPathDocument(stream);
XPathNavigator user = xpathDoc.CreateNavigator().SelectSinglenode("/user");
 
Fill data:
 
foreach (FormField field in document.Sections[0].Body.FormFields)
  {
     String path = String.Format("{0}/text()", field.Name);
     XPathNavigator propertyNode = user.SelectSingleNode(path);
     if (propertyNode != null)
     {
         switch (field.Type)
         {
             case FieldType.FieldFormTextInput:
                  field.Text = propertyNode.Value;
                  break;
 
             case FieldType.FieldFormDropDown:
                  DropDownFormField combox = field as DropDownFormField;
                  for(int i = 0; i < combox.DropDownItems.Count; i++)
                  {
                      if (combox.DropDownItems[i].Text == propertyNode.Value)
                      {
                         combox.DropDownSelectedIndex = i;
                         break;
                      }
                      if (field.Name == "country" && combox.DropDownItems[i].Text =="Others")
                      {
                         combox.DropDownSelectedIndex = i;
                      }
                  }
                  break;
 
             case FieldType.FieldFormCheckBox:
                  if (Convert.ToBoolean(propertyNode.Value))
                  {
                      CheckBoxFormField checkBox = field as CheckBoxFormField;
                      checkBox.Checked = true;
                  }
                  break;
            }
       }
   }
 }

8、合并word文档

//Load two documents
//Load Document1 and Document2
Document DocOne = new Document();
DocOne.LoadFromFile(@"E:\Work\Document\welcome.docx", FileFormat.Docx);
Document DocTwo = new Document();
DocTwo.LoadFromFile(@"E:\Work\Document\New Zealand.docx", FileFormat.Docx);
 
//Merge
foreach (Section sec in DocTwo.Sections)
{
 DocOne.Sections.Add(sec.Clone());
}
//Save and Launch
DocOne.SaveToFile("Merge.docx", FileFormat.Docx);

9、保护文档。你可以设置密码或者加入水印来进行保护。文字和图片的水印都支持。

//Protect with password
document.Encrypt("eiceblue");
 
//Add Text watermark:
TextWatermark txtWatermark = new TextWatermark();
txtWatermark.Text = "Microsoft";
txtWatermark.FontSize = 90;
txtWatermark.Layout = WatermarkLayout.DiaGonal;
document.Watermark = txtWatermark;
 
//Add Image watermark:
PictureWatermark picture = new PictureWatermark();
picture.Picture = System.Drawing.Image.FromFile(@"..\imagess.jpeg");
picture.Scaling = 250;
document.Watermark = picture;

10、转换功能是在处理word文档时最常见的操作了。使用免费版的Spire.doc  for .net, 转换变得很简单。只要包含三行类似的代码你就可以把word转换成其他常用格式,像pdf,html和图片。

Word转换成PDF

document.SaveToFile("Target PDF.PDF", FileFormat.PDF);

Word转换成图片

Image image = document.SaveToImages(0, ImageType.Bitmap);
image.Save("Sample.tiff", ImageFormat.Tiff);

word转换成HTML

document.SaveToFile("Target HTML.html", FileFormat.Html);
WordDocViewer(""Target HTML.html");

结论

这是一个免费又强大的C# word 组件,它不需要 Word automatio即可运行,并且任何第三方的功能都囊括。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: C#中使用Spire.doc对word的操作方式

本文链接: https://lsjlt.com/news/178398.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#中使用Spire.doc对word的操作方式
    目录使用Spire.doc对word的操作Word操作汇总结论使用Spire.doc对word的操作 在最近的工程中我们要处理一些word文档。通过在网上的大量搜索,我发现大多数软件...
    99+
    2023-01-28
    C#使用Spire.doc Spire.doc对word操作 C# Spire.doc word
  • C#中怎么对Word进行操作
    C#中怎么对Word进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。导入COM库:Microsoft word 11.0 Object Library.引用里面就增加了:...
    99+
    2023-06-17
  • C#操作Word书签的方法
    本篇内容主要讲解“C#操作Word书签的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#操作Word书签的方法”吧!C#操作Word书签是如何实现的呢?让我们来看看实例的操作: ...
    99+
    2023-06-18
  • C#操作Word的方法是什么
    本篇内容主要讲解“C#操作Word的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#操作Word的方法是什么”吧!C#操作Word的内涵:C#操作Office套件的时候都需要用到CO...
    99+
    2023-06-17
  • C#中using word的使用方法
    这篇文章主要介绍“C#中using word的使用方法”,在日常操作中,相信很多人在C#中using word的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#中using word的使用方法”的疑...
    99+
    2023-06-17
  • Python中xmltodict对xml的操作方式
    目录Python xmltodict对xml的操作Python XML解析,xmltodict模块总结Python xmltodict对xml的操作 xmltodict是另一个简易的...
    99+
    2023-03-14
    Python xmltodict Python xmltodict xml xmltodict对xml操作
  • C# 中使用隐式和显式操作符的示例
    目录什么是显式,什么是隐式创建 DTO 类Model 和 DTO 之间的相互转换使用隐式操作符使用显式操作符C# 有一个鲜为人知的特性是通过定义 显式和隐式操作符 实现类型之间的转换...
    99+
    2024-04-02
  • Java键值对Pair的使用方式和操作流程
    目录 一、什么是键值对 二、Java的Pair 三、Pair 的使用场景   一、什么是键值对 键值对是一种常见的数据结构,它由一个唯一的键(key)和与之关联的值(value)组成。键和值之间存在一种映射关系,通过键可以查找或访问对应...
    99+
    2023-09-17
    java 开发语言 jvm
  • 使用Python自动化Microsoft Excel和Word的操作方法
    将Excel与Word集成,无缝生成自动报告 毫无疑问,微软的Excel和Word是公司和非公司领域使用最广泛的两款软件。它们实际上是“工作”的同义词。通常情况下,每一周我们都会将两...
    99+
    2024-04-02
  • Python中xmltodict对xml的操作方式是什么
    今天小编给大家分享一下Python中xmltodict对xml的操作方式是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-07-05
  • redis操作对象的方式有哪些
    Redis操作对象的方式有以下几种:1. RedisClient对象:通过RedisClient对象可以直接连接到Redis服务器,...
    99+
    2023-08-30
    redis
  • 怎么使用ABAP编程实现对微软Office Word文档的操作
    这期内容当中小编将会给大家带来有关怎么使用ABAP编程实现对微软Office Word文档的操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SAP ABAP里提供了一个标准的类CL_DOCX_DOCUM...
    99+
    2023-06-04
  • Java使用apache poi操作excel的方式
    目录一.基本介绍1.1、Apache POI介绍1.2、HSSF和XSSF1.3、引入依赖二.利用poi库创建excel2.1、创建一个空excel2.2、简单演示写入excel内容...
    99+
    2024-04-02
  • 使用@JsonFormat和@DateTimeFormat对Date格式化操作
    @JsonFormat和@DateTimeFormat对Date格式化 实体类 package com.pojo; import java.util.Date; import c...
    99+
    2024-04-02
  • 隐式和显式操作符如何在C#项目中使用
    隐式和显式操作符如何在C#项目中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是显式,什么是隐式隐式类型转换 它是运行时自动帮你完成的,言外之意就是你不需要人为干预...
    99+
    2023-06-14
  • C#如何利用File方法对文件操作
    这篇文章给大家分享的是有关C#如何利用File方法对文件操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C#文件的读和写提供了非常多的方法基本一两行就可以搞定“读和写”,在编程里还是比较重要的什么是读?你的程序...
    99+
    2023-06-20
  • c++中对象的作用
    c++ 中的对象将数据封装成包含数据(成员变量)和操作数据方法(成员函数)的实体,目的是:封装数据,保护数据免受意外访问或修改。管理数据,使用成员变量存储数据并使用成员函数操作数据。实现...
    99+
    2024-05-08
    c++
  • C++中使用哈希表(unordered_map)的一些常用操作方法
    目录1.建立基本数据类型的哈希表2.向哈希表中添加元素1).insert 函数2).用数组方法直接添加3.成员函数begin(),end()函数find()查找函数count() 查...
    99+
    2024-04-02
  • C++中Stack(栈)的使用方法与基本操作详解
    目录一、stack概述二、stack的基本操作1、头文件2、stack创建方式3、栈顶和栈底操作4、元素添加和删除5、栈的大小操作6、判断栈是否为空三、stack的实际应用一、sta...
    99+
    2023-05-19
    C++ Stack栈用法 C++ Stack C++ 栈
  • Python中Selenium对Cookie的操作方法
    1、Cookie介绍 HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。也就是说即使第...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作