如何获取MS Word文档复选框形式元素关联的文本值.我能够提取复选框的值.我尝试使用书签和名称属性,发现与复选框提交的书签没有相关的价值.我得到以下输出.有任何想法吗? 表格字段: 代码: Sub Test() Dim strCheckBoxName As String Dim strCheckBoxValue As String For i = 1 To ActiveDocument.FormFields.Count If ActiveDocument.FormFields(i).CheckBox Then strCheckBoxName = ActiveDocument.FormFields(i).Name strCheckBoxValue = ActiveDocument.FormFields(i).CheckBox.Value Debug.Print
以下是关于 word-automation 的编程技术问答
我正在尝试使用VBA移动一个在各个段落开始时出现的丰富文本子句(" strtext")到出现该子句的每个段落的末尾,此后下划线. 我是VBA编程的新手/业余爱好者,所以请保持温柔.在寻求帮助之前,我花了几天的时间. 我尝试编码的问题(如下): 我试图分配给var" lparano"所发现的文本(strtext)的段落数.但是" lparano"返回的数字完全不在基础上. 如果有人建议如何获得正确的段落号,我将不胜感激. 我的目的是设置一个范围可变objrange_paraholdingText = activedocument.paragraphs.paragraphs(lparano).range,即,一个范围会反映找到所寻求文本的段落. 我不知道如何将Objrange01(" strtext",是格式化的文本)移至出现的段落的末尾. 任何建议都将不胜感激. 谢谢,马克 Sub subFindTextAndMoveItToEndOfTheSameP
我正在写一些非常简单代码打开Word文档,以新的格式保存它和关闭文件.但是,如果将文档留在锁定状态并获取"使用中的文件"对话框,我会遇到问题. 现在,我很高兴自动选择选项1或3,但似乎找不到方法.理想情况下,我将防止它通过开放方法上的参数完全显示.我正在使用Delphi,但这并不重要. Wordapp.documents.Open(InputFile); 解决方案 用Readonly设置为true打开呼叫似乎可以解决此问题. Readonly := true; Wordapp.documents.Open(FName, false, Readonly); //3rd parameter is readonly 参考: http://msdn.microsoft.com/en en -us/Library/Office/ff835182.aspx
我正在与SharePoint 2010合作,我要做的是进行Word文档模板,对几个关键字进行替换(例如:用客户端的ID替换##ClientID##),然后用一个SharePoint上的库中的特定名称. 我已经弄清楚了如何在使用单词Interop Word的本地计算机上执行此操作,但是Interop库一词的目的不是作为服务运行.然后我发现 Word Automation Services 似乎可以做我需要做的事情.但是,我在Internet上找到的每个示例(包括So在这里)都只是"如何使用Microsoft.Office.Word.Server.Conversions>>命名空间从Word文档转换为XXX".我还没有找到有关如何使用Microsoft.Office.Word.Server.Service命名空间进行查找和替换文档的示例. MSDN在如何使用课程方面非常缺乏,我不知道在哪里使用它. 不可能使用服务去做我想做的事?如果可以做到的话,有人可以指向我要做我想做的事情的正
我正在编写与Microsoft Office Word 2010有关系的医学程序(带有C#语言).在Word 2010中,您可以通过按下 ctrl + p .启动Office Word之后,我想看到"打印预览和打印",但是我看到了Office 2007/2003的旧打印预览,这意味着我不知道如何从Office Com Objects访问此页面. 我尝试过的代码: oWordDoc.PrintPreview(); _oWord.Visible = true; 解决方案 您可以随时尝试 sendkeys "> sendkeys "> 做与HotKey ctrl + p SendKeys.Send("^P"); 其他解决方案 尝试 int dialogResult = wordApp.Dialogs[Word.WdWordDialog.wdDialogFilePrint].Show(ref missing); if (dialogResult == 1) {
有人可以指导我如何使用打开的XML文字处理在段落上添加预定义的样式?我尝试了论坛上可用的各种解决方案,但对我来说无济于事.这是我想完成的: // Create a document by supplying the filepath. WordprocessingDocument wordDocument = WordprocessingDocument.Create("E:/Test/Executive.Docx", WordprocessingDocumentType.Document); // Add a main document part. MainDocumentPart mainPart = wordDocument.AddMainDocumentPart(); // Create the document structure and add some text. mainPart.Document = new Document(); Body body =
我正在寻找一种使用OpenXML在Word Doc中的书签后插入一些文本的方法.到目前为止,我已经能够使用以下内容找到书签: var bookmarks = mainPart.Document.Descendants().ToList(); var bookMarkToWriteAfter = bookmarks.FirstOrDefault(bm => bm.Name == insertAfterBoomark.Name); Word Doc中的此书签是DOC中的两行选择.在两行选择之后,我必须立即插入一些文本.我尝试使用以下内容插入文本: var run = new Run(); run.Append(new Text("Hello World")); bookMarkToWriteAfter .Parent.InsertAfterSelf(run); mainPart.Document.Save(); 但是,这不会产生所需的结果.
我正在编程软件,并且需要将图像替换为图像或文本. 我找到了一些代码,可以用图像替换图像,它可以正常工作. 我想调整此代码,以便我也可以用文本替换图像. 我知道有更好的方法可以做到,但是我特别需要使用Interlope完成. 任何帮助将不胜感激. using System.Collections.Generic; using Word = Microsoft.Office.Interop.Word; namespace WordExample { class WordExample { #region Constructor public WordExample() { WordApp = new Microsoft.Office.Interop.Word.Application(); } #endregion #region Fields private Word.Application WordApp;
我正在尝试使用C#插入多个表格中的Word文档,但是当我添加另一个代码块以在中添加一个表时,我会遇到错误,而第二个表未插入.如何将范围向下移至页面底部,然后添加另一个表?我尝试使用DOC参考的结尾创建一个新范围,但这似乎不起作用,有人可以给我一些帮助吗? Word._Application objApp; Word._Document objDoc; try { object objMiss = System.Reflection.Missing.Value; object objEndOfDocFlag = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ //Start Word and create a new document. objApp = new Word.Application(); obj
如何将DOC,DOCX文件读取为.NET使用C#. 解决方案 我看到您使用了 asp.net 标签.您不应使用自动化API(COM Interop)从ASP.NET或任何其他服务器应用程序运行Microsoft Office产品.办公产品由用户界面从桌面运行.它们在服务器方案中无法正常工作,此外,还有许可问题. 使用 aspose.words for .NET 或其他一些此类技术.它们旨在用于服务器环境中. 其他解决方案 aspose. .net的单词是一个商业图书馆,允许您准确地做到这一点.从网站: 使用aspose.words for .net,开发人员可以轻松打开并保存DOC,OOXML,RTF,WordProcessingml,HTML,MHTML,MHTML,TXT和Opendocument文档. 其他解决方案 通常使用COM Interop与Office文档进行连接. 这是MSDN上有关创建Excel文件的示例,它应该给您一个想法.
我有一个Winforms应用程序,在该应用程序中,我正在使用Word Automation通过模板构建文档,然后将其保存到数据库中.创建文档后,我从数据库中检索文档,将其写入临时目录中的文件系统,然后使用Interop Services一词打开文档. 有一个已加载的文档列表,用户只能打开每个文档的1个实例,但是可以同时打开多个不同的文档.当他们打开1个文档时,我在打开,保存和关闭时没有任何问题,但是,当他们同时打开多个文档时,关闭我的任何一个单词实例时,我会遇到以下错误: The file is in use by another application or user. (C:\...\Templates\Normal.dotm) This error is commonly encountered when a read lock is set on the file that you are attempting to open. 我正在使用以下代码打开文档并处理
我得到的"有打印机错误".当使用Windows 7上的自动化Windows 2010上的自动化将打印作业绑在打印机上时.同一代码在Windows XP框中正常使用Word 2007.我不确定Windows 7或Word 2010是否会导致错误. 任何帮助 using Microsoft.Office.Interop.Word; ..... object oWordbasic = wordDoc.Application.WordBasic; object[] argValues = new object[] { value, 1 }; //first arg is a printer name String[] argNames = new String[] { "Printer", "DoNotSetAsSysDefault", }; //Error Here oWordbasic.GetType().InvokeMember("FilePrintSetup", Sy
我正在寻找使用OpenXML进行服务器端单词自动化项目的替代方法.有谁知道其他有功能可以让我操纵单词书签和表格的方法? 解决方案 我目前正在进行一个为公司开发一个单词自动化项目的项目,我正在使用 docx 非常简单而直接的API可以使用.我使用的方法是,每当我需要直接使用XML时,此API都会在段落类中具有名为" XML"的属性,该属性使您可以访问基础XML DiReclty,以便我可以使用它.最好的部分是它不会破坏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.Paragrap
经过一些实验,我最终获得了以下代码,以执行搜索和替换MSWORD.此代码在标头和页脚中也可以很好地工作,包括首页或奇数/偶数/偶数页的标题和/或页脚不同的情况. 问题在于我需要为我替换的每个字符串调用MSWordSearchAndReplaceInAllDocumentParts,并且我会获得不可接受的性能(在4页的Doc Word中大约50个字符串的2分钟).理想情况下,当然应该是"瞬时". 在处理标头和页脚之前,我只是在主文档中进行搜索并替换(使用WDSEEKMAINDOCUMENT).在这种情况下,perofrance是可以接受的(即使很慢).我只是想知道为什么这么慢:切换视图需要时间吗?通常,标题或页脚包含很少的单词,因此我希望所有搜索和更换的标题和页脚都不会使整体性能变得更糟.但这不是我观察到的. 这是代码,在底部,我放置了profiler结果: // global variable (just for convenience of posting to
我试图通过Interop.Word使用Word Automation写入Word文档的查找/替换代码(11.0).我的文档都拥有各种字段(未在文档中显示的字段),其包围括号,例如.,需要用DateTime.Now.Format("MM/dd/yyyy")替换.查找/替换工作正常.但是,替换的一些文本是正确的,并且在替换后,文本包裹到下一行.是否有任何方法可以在执行替换时保持对齐?代码如下: using Word = Microsoft.Office.Interop.Word; Word.Application wordApp = null; try { wordApp = new Word.Application {Visible = false}; //.... open the document .... object unitsStory = Word.WdUnits.wdStory; object moveType = Word
这在 Visual Studio 的服务器上运行良好,但是当服务器更改为 IIS 时,它会抛出: 由于以下错误,从 IClassFactory 创建 CLSID 为 {00020906-0000-0000-C000-000000000046} 的 COM 组件实例失败:8001010a. object initial_limits = 0; object missing = System.Reflection.Missing.Value; object Visible = true; object openfilename = @"C:\letters\Templates\" + template_src_dropdown.SelectedValue + ".doc"; current_date = DateTime.Now.Date.ToString("dd/MM/yyyy");