通过Office API将多个Word文档保存为HTML
我有大量的Word文档需要解析.由于它们都是从同一模板创建的,因此我认为最好的方法是将它们保存为HTML文件并解析HTML本身. 虽然将单个Word文档保存为HTML非常容易,但我还没有找到一种从内部文字执行批量过程的方法.因此,我正在尝试找到一种方法来利用Microsoft Office/Word API来完成此操作. 如何使用API​​一词将许多Word文档保存为HTML? 预先感谢. 更新:更多细节... 某些文档是扩展.doc,而其他文档则为.docx.我希望这不是问题,但是如果是的话,我只需要将它们全部转换为.docx,希望使用API​​或 docx . 谈到docx,我在作者的博客可以使用以下代码保存.docx文件为HTML: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Word = Micros
18 2024-04-20
编程技术问答社区
微软Office应用程序的主要互操作组件
我正在尝试在我的网络服务器上安装Microsoft Office的Interop组件, 用于从我的网站读取Word文档的使用. 我可以只安装组件吗? 还是安装办公室套房的唯一方法? 例外: Could not load file or assembly 'Microsoft.Office.Interop.Word, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified. Interop组件列表: http://msdn.microsoft.com/en-us/en-us/library/15s06t57 .aspx#pialist 解决方案 如果您想使用该功能,则需要安装Microsoft Office的完整版本.内部内部组件本身没有提供任
2 2024-04-19
编程技术问答社区
如何向mailitem.cc字段添加多个收件人 c#
oki,所以我在Outlook .msg模板上工作. 以编程方式打开它们,插入基于我的DB中的值. ex.当我想在"到"字段上添加多个reciepient,而不是按照以下方式进行操作, mailitem.To = a + ";" + b + ";" + c; 我在下面做什么,这更简单,尤其是当我以循环进行操作时. mailitem.Recipients.add("a"); mailitem.Recipients.add("b"); mailitem.Recipients.add("c"); 我的问题是,我还想在" CC"字段上添加多个收件人,并且上述功能仅适用于""字段.如何在不必进行字符串操作的情况下将多个收件人添加到" CC"字段中. 通常,我会像这样将收件人添加到CC, mailitem.CC = a + ";" + b + ";" + c; im使用Interop.outlook并从模板中创建mailItem
4 2024-04-18
编程技术问答社区
处理Microsoft Office Outlook 2003/2007的电子邮件信息
摘要 现在,我收到有关特定工作相关域的电子邮件,我想根据这些电子邮件中提供的信息来构建数据库. 这些消息是有关我世界角落的计算机科学行业的某些需求和需求的与工作有关的项目. 我想以自动方式解析或分析这些电子邮件,以便我可以将重复的信息输入数据库并构建类似商业智能的数据库,这将使我了解最需要的专业领域. 技术环境 o/s: Microsoft Windows 7 Pro 办公室: Microsoft Office 2007 Pro 是,我可以使用.NET 4.0! =) (我很高兴根据需要提供更多信息.) 问题 如何通过com Interop组件访问PST文件或Outlook个人数据文件? 用于实例化Outlook PST文件或其他信息的每个电子邮件? 解析电子邮件的最佳方法是什么? 感谢所有可以分享她/他的盐分的人,以帮助我实现目标.这对我很有意义. 解决方案 如果您打算使用Outlook 2007 com对象模型,我
18 2024-04-17
编程技术问答社区
可在Excel 2007和2010上使用的Excel插件
我正在编写一个在2007年和2010年都应该使用的Excel Addin.当我使用Visual Studio创建一个新项目时,我需要确定我想要的版本.我以前选择了2007年,但是由于我已经安装了2010年,所以我无法调试它.我有一个错误: 您无法调试或运行此项目, 因为所需的版本的 Microsft Office申请不是 安装. 我理解,如果我针对2007,我应该能够在2007年和2010年均能运行它.这是正确的吗?如果是这样,我可以使用2010年调试吗? 解决方案 共享的加载项是由一个Visual Studio项目制成的,创建一个COM加载项,以实现IDTEXTENSENIBLE2接口.这使您可以访问Excel模型(工作簿,工作表,范围,...). 如今,这种项目看起来最像是C#XLA.它们通常用于部署给外部客户的正式商业开发.尽管它们更难制作和维护,但它们确实可以使您更深入地控制加载项,并且可以在某种程度上进行版本不合时宜的方法(也就是说,您可以使用自己的IA
34 2024-04-16
编程技术问答社区
很好地阅读了Outlook mailitem属性
我正在为Outlook 2007编写一个插件,我想阅读MailItem的属性. 特别是我想知道我的附件的所有内容类型.现在,我现在这样做的方式就是这样: Outlook.MailItem item = OutlookItem as Outlook.MailItem; Outlook.Attachments itt = item.Attachments; foreach (Outlook.Attachment t in item.Attachments) { textBox1.Text += t.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x370E001F"); } ,但我宁愿只称呼类似. t.PropertyAccessor.GetProperty(PR_ATTACH_MIME_TAG); 我稍后无法获得您的工作,但是在MSDN文档中提到了该属性. (htt
16 2024-04-15
编程技术问答社区
如果我为office 2007写一个插件,它能在2010、2013年使用吗?
我目前正在重写2003年撰写的一些VBA宏.我想知道我是否为2010年或什至2013年撰写了C#附加功能如果他们也将在2007年和2013年工作,我为2010年写了他们.我目前可以访问2007年,但如果需要,我可以访问2010年,还没有2013年. 因此,基本上,办公室版本会影响插件多少? 解决方案 如果您使用 Visual Studio工具用于Office 2010(VSTO 4.0),则它将兼容Office 2007 ,Office 2010 and with Office 2013.如果您使用以上的更早版本,则可以仅使用该版本仅适用于特定的办公版本.作为示例VSTO 3.0仅支持office 2003 and 2007如下所示. 有关更多信息,请查看此信息 fisual fisual Studio fisual Studio fisual Studio fisual Studio fis Visual Studio for Office and 兼容性显示
22 2024-04-14
编程技术问答社区
将修改后的WordprocessingDocument保存到新文件中
我正在尝试打开W​​ord文档,更改一些文本,然后将更改保存到新文档中.我可以使用以下代码完成第一个位,但我无法弄清楚如何将更改保存到新文档(指定路径名和文件名). using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using DocumentFormat.OpenXml.Packaging; using System.IO; namespace WordTest { class Program { static void Main(string[] args) { string template = @"c:\data\hello.docx"; string documentText; using (WordprocessingDocumen
8 2024-04-11
编程技术问答社区
访问COM组件时出错
我为Microsoft Office Word构建了一个加载项.当单词以管理员的身份运行时,使用加载程序没有问题,但是当它不是作为管理员运行时,有两个常见的例外访问功能区元素. 第一个例外: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error: could not be found. (Exception from HRESULT: 0x80030002 (STG_
2 2024-04-10
编程技术问答社区
Microsoft.ACE.OLEDB.12.0'提供商没有在本地机器上注册,而数据导出到MS ACCESS。
我是使用microsft.ace.oledb 12.0的初学者.我创建了Winforms应用程序vs2010. 并创建一个将数据网格数据导出到MS访问文件的函数.我使用Microsoft OLEDB 用于将数据网格数据导出到MS访问文件.但是当我尝试导出时,我会遇到此错误 数据到MS访问. 请参阅下图. 我还参考了我的应用程序中的 microsoft.office 12.0对象库 批处理构建配置 解决方案 对Access Interop位的引用与您的例外无关,并且访问Interop不需要使用System.Data.OleDb中的类. 当您对AnyCPU Platform进行编译时,出现了问题,您正在使用64位系统运行,并且已安装的Ado.net提供商(Microsoft Ace.oledb.12.0)是32位版本.> 使用AnyCpu目标平台时,您的代码将在64位系统上执行为64位代码,在32位系统上将代码执行为32位代码.执行为64位
10 2024-04-10
编程技术问答社区
合并Word文档(Office Interop & .NET),保持格式化
我很难使用Microsoft Office Interop程序集将多个Word文档合并在一起(Office 2007)和ASP.NET 3.5.我能够合并文档,但是我的一些格式缺少(即字体和图像). 我当前的合并代码如下所示. private void CombineDocuments() { object wdPageBreak = 7; object wdStory = 6; object oMissing = System.Reflection.Missing.Value; object oFalse = false; object oTrue = true; string fileDirectory = @"C:\documents\"; Microsoft.Office.Interop.Word.Application WordApp = new Mic
10 2024-03-08
编程技术问答社区
我能否创建一个针对.net框架4.6.1的VSTO outlook插件,在2007至2016年的所有office版本上运行?
我有一个带有VS 2008和3.5框架的Outlook Addin. .正如我目前针对.net 3.5的目前ADDIN所做的那样.Whereas如果我开发了2010年Office 2010 Addin,它可能会在2007年崩溃. .NET框架4.6.1. 解决方案 您想针对.NET Framework 4.6.1开发ADDIN,但仍将目标Office 2007视为Office被认为总是"向下兼容".尽管从理论上讲是这种情况,但实际上,您会遇到问题(例如,随着时间的流逝,Excel将其应用程序模型从MDI更改为SDI,从而在针对较旧版本的Addins中遇到了各种可见性问题). > .NET框架也是如此.针对较低框架的应用程序应与以后的框架一起使用.另一种方式可能会引起实际问题. 因此,我认为最好的答案是使用Office PIA和.NET框架中最低的分母来支持旧的办公版本.从理论上讲,这意味着您应该使用Office 2007 PIA和.NET 3.5,以获得2007年及
20 2024-01-07
编程技术问答社区
你能在没有办公室的情况下安装Office 2007 PIA's吗?
首先,我的问题与 不完全相同 是否可能在没有办公室的情况下使用2007年的PIA 2007?/a> 我还不想使用PIA.理想情况下,IT工程师希望在升级Office 2007之前将2007 PIA的计算机部署到每个人的计算机上.这样一来,就较少的事情必须立即进行.我想知道这是否可能 解决方案 是的,有可能,我们最终做到了,而且效果很好. 其他解决方案 我的最佳体验是用您的应用程序/附加组件消除PIA,因为有一些尴尬的因素可以通过这种方式解决. 如果您不将其注册到GAC,而Tehy将留在您的申请/附加目录中,您将不会影响任何其他. 其他解决方案 不,这是不可能的. Office Pia需要首先安装正确的办公室版本.
28 2024-01-06
编程技术问答社区
EPPlus和ClosedXML库在处理OpenXML方面有什么不同?
我正在尝试在封闭室,epplus和可能的电子表格光线之间进行选择.我可能会考虑什么原因是选择一个? 解决方案 过去一周,我一直在评估Epplus,nolestXML和电子表格.这三个都是非常出色的图书馆,使与极其令人费解的OpenXML一起工作变得轻而易举.由于以下原因,我决定与Epplus一起使用: 最初,我打算使用lotexml.它具有出色的文档,对象结构对我来说很有意义.不过,我有一些图表要求,截至目前,关闭XML没有任何图表功能. 然后,我偶然发现了电子表格,这也有很好的文档,并且确实支持了一些图表.我也喜欢作者的态度和他对产品的承诺. 但是,该项目建立在OpenXML 2.0 SDK的顶部,而不是2.5,这对我来说是一个破坏者,因为如果图书馆不太满足,我想灵活地与OpenXML合作我的需要.我的项目是针对Excel 2013的目标,因此我想使用最新的SDK来使用. ...更新!有关其他信息,请参见下面的Errcode评论... 最后,我遇到了Epplu
22 2024-01-04
编程技术问答社区
在VSTO Excel中,如何检测单元格中的数据?
一个过程,可以快速检测给定工作表中是否存在数据,而无需实际循环浏览工作表的所有行/列. 对于我当前的过程,我目前正在整个工作表中循环,并且导入中有一些明显的滞后时间. 解决方案 要避免循环并利用几乎瞬时的执行速度,您可以使用Excel.WorksheetFunction.CountA方法,该方法返回与= Counta()工作表函数相同的结果. 假设您的excel.application参考被命名为" excelapp",并且您的excel.worksheet参考被命名为"工作表",则可以在C#4.0中使用以下代码: // C# 4.0 int dataCount = (int)excelApp.WorksheetFunction.CountA(worksheet.Cells); if (dataCount == 0) { // All cells on the worksheet are empty. } else { // There is
12 2024-01-03
编程技术问答社区
获取Outlook 2007中当前用户的电子邮件地址
我的Outlook添加了C#. 我想知道如何或是否可以获取当前用户的电子邮件地址? 谢谢 解决方案 使用Namespace.CurrentUser: httpp ://msdn.microsoft.com/en-us/library/bb220041(v = office.12).aspx 其他解决方案 在VS 2010,.NET 4.0,Outlook 2010中测试: var emailAddress = this.Application.ActiveExplorer().Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress; 其他解决方案 取决于"当前用户地址"的定义. 可以从Appication.Session.CurrentUser(返回Recipient对象)检索Outlook中主要帐户的地址.使用Recipient.Address属性.但是请注
24 2024-01-03
编程技术问答社区
Visual Studio 2010与SQL Server 2008和Office 2007的正确安装顺序?
我想用以下方式创建一个Windows 7 64位(终极)虚拟机 Visual Studio 2010(Ultimate) Office 2007 Enterprise(Visio 2007) SQL Server 2008(使用SSIS和SSR) 但是我不确定是否有正确的正确安装这些项目,以免从该列表上的另一个应用程序中丢失一个应用程序的"意识"吗? 例如,我想确保Visual Studio知道Office存在,但Visual Studio知道SQL Server存在,但是如果我在Office之前安装SQL Server,则可以清除VS 2010所需的任何数据访问驱动程序,如果办公室是在SQL Server之后安装的? 有很多组件,我从来没有想到安装订单很重要,但我有一种感觉.最终,我想创建一个可以保存和使用基本开发VM的VM,从中创建其他VM. 解决方案 我认为对于上述应用程序没有正确和错误的顺序,但是如果我要安装它们,我将使用以下订单安装:Office
26 2023-12-07
编程技术问答社区
在Excel中调用网络服务
在Excel 2007的VBA模块中,是否可以调用Web服务?如果是这样,有什么代码片段?我将如何添加网络参考? 解决方案 是的,您可以! 我从事这样做的项目(请参阅评论).不幸的是,没有该代码样本,但是谷歌搜索显示了这些: 如何使用Excel和VBA 逐步:通过VBA(Excel或Word)消费Web服务 vba:消费肥皂服务 其他解决方案 这是MS的概述: 在Excel 2007中消费Web Services 其他解决方案 有关更新的答案,请参阅此问题: 使用Excel 2010中的VBA代码调用Web服务 应该合并两个线程.
14 2023-12-02
编程技术问答社区
没有Office 2007,是否可以部署Office 2007 PIA?
Office 2007 PIA是否还要求安装Office 2007? 我可以使用VSTO 3.0部署Office 2007 PIA(不安装了Office 2007)? 编辑:我有一个生成MS Word文件的Windows应用程序.我已经在设置中添加了Office 2007 PIA作为自定义先决条件,但是Office 2007 PIA需要MS Office 2007. 我只是想知道,如果VSTO不需要办公室安装,那么也许我可以将我的应用程序转换为VSTO. 解决方案 为了使用VSTO,必须安装办公室. VSTO PIA仅提供一个.NET和办公室曝光的COM接口之间的垫片.因此,Pia可以没有办法做任何事情. 其他解决方案 注意:您可以生成不办公室的Docx(Word 2007)文件. 其他解决方案 您想准确地使用主要的Interop组件?我认为您需要澄清一下您的问题. 如果您打算在未安装办公室的Microsoft Office Pia DLL上进行
36 2023-11-30
编程技术问答社区
如何在不在构建系统上注册的情况下构建一个Office插件?
我们将使用Visual Studio 2008构建Office 2007加载项.我们的构建是通过连续集成服务器(一台计算机)执行的,该服务器每当我们检查更改或手动请求一个时,该服务器将构建.服务器可以同时进行构建. 我们注意到,当Visual Studio 2008构建Office 2007加载项时,它也会在执行构建的系统上进行注册,即使Office未在Integration Server上安装. 有人知道一种防止Visual Studio 2008在构建加载项时注册的方法吗? 解决方案 假设您的连续集成服务器正在使用MSBUILD来构建Office 2007加载项的快速解决方法将是执行构建目标,然后是VSTOCLEAN目标. 您可以通过创建一个控制构建过程的MSBUILD项目文件(Master.proj)来实现此目标,如以下示例所示:
28 2023-11-25
编程技术问答社区