服务器端文字自动化
本文关键字:自动化 文字 服务器端 | 更新日期: 2023-09-27 18:28:46
我正在为服务器端单词自动化项目寻找使用openxml的替代方案。有人知道还有什么其他方法可以让我操作单词书签和表格吗?
我目前正在为我的公司开发一个单词自动化项目,我正在使用DocX非常简单和直接的API进行工作。我使用的方法是,每当我需要直接使用XML时,这个API在Paragraph类中有一个名为"XML"的属性,它允许您访问底层的XML目录,这样我就可以使用它了。最棒的是,它不会破坏XML,也不会损坏生成的文档。希望这能有所帮助!
使用DocX的示例代码。。
XNamespace ns = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
using(DocX doc = DocX.Load(@"c:'temp'yourdoc.docx"))
{
foreach( Paragraph para in doc.Paragraphs )
{
if(para.Xml.ToString().Contains("w:Bookmark"))
{
if(para.Xml.Element(ns + "BookmarkStart").Attribute("Name").Value == "yourbookmarkname")
{
// you got to your bookmark, if you want to change the text..then
para.Xml.Elements(ns + "t").FirstOrDefault().SetValue("Text to replace..");
}
}
}
}
专门使用书签的替代API是。。http://simpleooxml.codeplex.com/
关于如何使用此API将文本从bookmarkstart删除到bookmarkend的示例。。
MemoryStream stream = DocumentReader.Copy(string.Format("{0}''template.docx", TestContext.TestDeploymentDir));
WordprocessingDocument doc = WordprocessingDocument.Open(stream, true);
MainDocumentPart mainPart = doc.MainDocumentPart;
DocumentWriter writer = new DocumentWriter(mainPart);
//Simply Clears all text between bookmarkstart and end
writer.PasteText("", "YourBookMarkName");
//Save to the memory stream, and then to a file
writer.Save();
DocumentWriter.StreamToFile(string.Format("{0}''templatetest.docx", GetOutputFolder()), stream);
将word文档从内存流加载到不同的API中。
//Loading a document file into memorystream using SimpleOOXML API
MemoryStream stream = DocumentReader.Copy(@"c'template.docx");
//Opening it from the memory stream as OpenXML document
WordprocessingDocument doc = WordprocessingDocument.Open(stream, true);
//Opening it as DocX document for working with DocX Api
DocX document = DocX.Load(stream);