加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#中使用Spire.doc对word的操作总结

发布时间:2020-12-16 01:06:57 所属栏目:百科 来源:网络整理
导读:? ? ? ? ? ? ? ? ? ? ? 在 C# 中使用 Spire.doc 对 word 的操作总结 ? ? 在最近的工程中我们要处理一些 word 文档。通过在网上的大量搜索,我发现大多数软件功能不是不完整就是有重复。极少数可以完全实现的 组件又要收费。功夫不负有心人,终于找到了可以满

? ? ? ? ? ? ? ? ? ? ?C#中使用Spire.docword的操作总结

??

在最近的工程中我们要处理一些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(");
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(Description2].AddParagraph();
TR?=?para.AppendText(Qty");
?
document.SaveToFile(WordTable.docx");
?
System.Diagnostics.Process.Start(");

?

?

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

?

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

?

Documentdocument?=newDocument();
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",HyperlinkType.WebLink);
?
Insert?email?address?hyperlink
paragraph?=?section.AddParagraph();
paragraph.AppendText(Contact?USmailto:support@e-iceblue.comsupport@e-iceblue.comHyperlink.docx");
System.Diagnostics.Process.Start(");

?

?


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(");
comment1.AddItem(textRange);
comment1.Format.Author?=?Harry?Hu";
comment1.Format.Initial?=?HH";
?
document.SaveToFile(Comment.docx");

?

?

5、如何加入书签

?

Document?document?=?new?Document();
Section?section?=?document.AddSection();
?
Paragraph?paragraph?=?section.AddParagraph();
?
paragraph.AppendBookmarkStart(SimpleBookMark");
paragraph.AppendText(This?is?a?simple?book?mark.");
paragraph.AppendBookmarkEnd(Bookmark.docx");

?

?

6、合并邮件

?

Document?document?=?Fax.doc");
?
string[]?filedNames?=?new?string[]?{?Contact?NameFaxDate"?};
?
string[]?filedValues?=?John?Smith+1?(69)?123456MailMerge.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?fileusing?(Stream?stream?=?File.OpenRead(......DataUser.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()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;
??????????????????????}
??????????????????}
??????????????????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:WorkDocumentwelcome.docxnew?Document();
DocTwo.LoadFromFile(E:WorkDocumentNew?Zealand.docxMergeforeach?(Section?sec?in?DocTwo.Sections)
{
?DocOne.Sections.Add(sec.Clone());
}
Save?and?Launch
DocOne.SaveToFile(Merge.docx、保护文档。你可以设置密码或者加入水印来进行保护。文字和图片的水印都支持。


Protect?with?password
document.Encrypt(eiceblueAdd?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

?

SaveToFile(Target?PDF.PDF?

Word转换成图片

?

Image?image?=?document.SaveToImages(0,?ImageType.Bitmap);
image.Save(Sample.tiff转换成HTML

?

document.SaveToFile(Target?HTML.html""Target?HTML.html);

?

结论:

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

?


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读