Tag: office interop

处理Microsoft Office Outlook 2003/2007电子邮件

摘要 我一直在接收特定工作相关域的电子邮件,并且我想根据这些电子邮件消息中提供的信息构建数据库。 这些消息是关于世界各地计算机科学行业的一些需求和要求的工作相关项目。 我想以自动方式解析或分析这些电子邮件,这样我就可以将重复信息发送到数据库中,并构建一个类似商业智能的数据库,让我随时了解最需要的专业领域。 技术环境 O / S: Microsoft Windows 7 Pro Office: Microsoft Office 2007 Pro 是的,我可以使用.NET 4.0! =) (我很乐意根据需要提供更多信息。) 问题 如何通过COM Interop程序集访问PST文件或Outlook个人数据文件? 有什么对象用于实例化Outlook PST文件或其他中的每个电子邮件? 解析电子邮件的最佳方法是什么? 感谢任何能分享她/他的盐的人,以帮助我实现我的目标。 这对我来说非常有意义。

如何识别word表中的合并列和行?

我需要阅读表格中的所有文字。 通过使用下面我可以从表中读取内容。 https://1drv.ms/w/s!Ah-Jh2Ok5SuHel9ZpB-V5DZ66DM这里我上传了一个包含表格的虚拟Docx文件。 foreach (Word.Row row in tb.Rows) { foreach (Word.Cell cell in row.Cells) { string cellText = “”; if (cell.Range != null) { cellText = cell.Range.Text.ToString().Trim().Replace(“\r\a”, “”); } } } 但对于以下3个案例,我面临问题。 案例1:显示在表1中,合并了两个列单元格。 通过使用上面的代码,我能够读取所有值,但与其他行相比,它的迭代次数减少了一次。 在这里我如何识别该行是否合并了cell / s? 案例2:在表2中显示,这里合并了2行。 迭代时我从tb.Rows获得以下错误无法访问此集合中的各个行,因为该表具有垂直合并的单元格。 在这里我如何识别表是否合并了行? 案例3:显示在表3中。表格在表格内。 通过使用上面的代码,它只识别一个表和cellText = cell.Range.Text.ToString().Trim().Replace(“\r\a”, “”) ; 在此行的末尾执行cellText获取当前单元格+内部表格单元格值的所有值。 即2abcd。 在这里我如何迭代内部表?

PPTX到图像转换在Windows Server 2012生产中不起作用

我们要求将上传的PPT或PPTX文件转换为图像文件。 我们使用以下(POC代码)在本地开发此工作: Application pptApplication = new Application(); Microsoft.Office.Interop.PowerPoint.Presentation pptPresentation = pptApplication.Presentations.Open2007(filePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); List files = new List(); for (int i = 1; i <= pptPresentation.Slides.Count; i++) { pptPresentation.SaveCopyAs(serverPath + randomId, PpSaveAsFileType.ppSaveAsPNG, MsoTriState.msoTrue); files.Add(root + "Uploads/Slide" + i + ".PNG"); } pptPresentation.Close(); 现在,当此代码部署在Windows Server 2012 R2上时,我收到以下错误: 这个错误看起来像是一些访问权限问题,当我用Google搜索时,我找到了几个我没试过的解决方案,这里有一些: 在服务器上安装办公室 – 没有任何意义在服务器上有办公室:(我安装好了,但仍然遇到同样的问题。 在服务器上安装Office Interop Assemblies – […]

尝试以编程方式打开PowerPoint时出错

我有一个方法,使用Microsoft.Office.Interop.PowerPoint.Application接口将PowerPoint演示文稿幻灯片转换为jpeg文件。 在Windows 2008服务器上运行的服务器应用程序中,它可以正常运行。 然而,现在,我正在编写一个新的Web应用程序,它使用相同的进程和在Presentation.Open调用上的degubber choke错误:“PowerPoint无法打开文件”。 我的环境是Win 7,VS 2010.我正在使用具有管理员权限的域帐户进行模拟。 我正在尝试打开的PowePoint文件位于c:\ temp文件夹中,该文件夹的NTFS权限为“everyone”设置为full; 文件不是只读的,我可以使用与我用于模拟的域帐户类似的帐户手动打开文件。 我不知道问题是什么。 有人可以说出正在发生的事吗? 谢谢,Risho。 using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using AjaxControlToolkit; using Microsoft.Office.Core; using Microsoft.Office.Interop.PowerPoint; using System.Threading; public partial class _Default : System.Web.UI.Page { private static int folderExtension; private static string tempSavePath, fileName; protected void Page_Load(object […]

需要一个文档使用onenote Interop从图像中提取文本?

我需要做一个简单的程序,需要使用Onenote Interop从图像中提取文本? 有人可以建议我为我的概念提供适当的文件吗?

范围无法删除。 在Microsoft.Office.Interop.Word.Range.set_Text(String prop)

用文本替换书签的推荐c#.net代码看起来非常直接,我在很多网站上看到了相同的代码(包括你的,从2009年9月发布的post)然而,我无法通过错误 范围无法删除。 在Microsoft.Office.Interop.Word.Range.set_Text(String prop) (我在Windows 7和Word 2010 14.0中使用VS 2010)。 我的代码: private void ReplaceBookmarkText(Microsoft.Office.Interop.Word.Document doc, string bookmarkName, string text) { try { if (doc.Bookmarks.Exists(bookmarkName)) { Object name = bookmarkName; // throws error ‘the range cannot be deleted’ doc.Bookmarks.get_Item(ref name).Range.Text = text; } }

PIA安装但仍然收到互操作错误

我正在尝试使用Microsoft.Office.Interop.xxxxxxx命名空间,但Visual Studio 2010不提供“interop”选项。 我已经为office12和office14安装了PIA,我已将它们包含在解决方案资源管理器的“参考”中,但它无法正常工作。 我试图调用命名空间的代码是: using Excel = Microsoft.Office…; 在“办公室”之后,我只能选择“核心”。 所以它看起来像这样 using Excel = Microsoft.Office.Core; 这匹配导入的引用…但使用此命名空间似乎没有用。 我的问题是如何让Microsoft.Office.Interop选项被接受并在intellisense中显示? 例: using Excel = Microsoft.Office.Interop.Excel; 收到“Interop”的错误消息=“名称空间’Microsoft.Office’中不存在类型或命名空间名称’Interop’(您是否缺少程序集引用?) 我在解决方案资源管理器中加载的程序集是“Microsoft Office 14.0对象库”TypeLib版本2.5。 程序集路径=“C:\ Program Files \ Common Files \ Microsoft Shared \ OFFICE14 \ MSO.DLL 谢谢你的任何建议!

Office 2007 互操作:检索RGB颜色

更新:如果您需要在office文档(格式2007)中确定rgb-color,请查看下面的答案。 有: 来自VS2010 PIA的Interop.Word.dll ver.14, VS2010 Express Edition MS Word 2010(第14版) .docx文件在没有Interop的情况下手工制作。 文件包含几个带有彩色角单元格的表。 目的:使用Interop构建另一个.docx文件,其中包含基于角落颜色填充渐变颜色的表格。 问题出现的地方:我需要将表格角落中的颜色从WdColor为System.Drawing.Color来计算渐变。 所以我使用单元格的Shading.BackgroundPatternColor属性。 我发现有时它包含正确的BGR 24位值,有时它不包含。 第二种情况仅在单元格具有主题调色板颜色之一时出现(标准和rgb调色板颜色效果很好,但主题调色板颜色会导致问题)。 例如,当我设置0x00F2F2F2 (最0x00F2F2F2的灰色)颜色时,它会在document.xml正确存储.docx文件存档,但Shading.BackgroundPatternColor属性设置为0xDC00F2FF 。 所以ColorTranslator.FromOle返回不同的颜色。 顺便说一句,这个灰色的枚举没有WdColor。 由于.Net Reflector,最硬的灰色wdColorGray05 = 0xF3F3F3 。 这意味着并非所有调色板默认颜色都对应于枚举颜色。 此外,如果我在Word中的RGB调色板中手动设置相同的颜色(即0x00F2F2F2 ),保存文件并通过Interop再次打开 – 颜色将正确设置为0x00F2F2F2 ! 问:有人有这个问题吗? 如何从Shading.BackgroundPatternColor属性中正确检索RGB颜色? 为什么此属性与document.xml存储的值不对应?

打开/处理SharePoint等Word文档

当使用asp.net处理服务器上的Word文档(.docx)时,有人能指出正确的方向。 我知道我可以使用提供的API写入并阅读.docx文档。 但我想像SharePoint一样实现这一点。 用户浏览网站,他已登录,然后选择在文件夹中创建新的Word文档,然后Word文档下载并在本地打开。 然后我希望用户能够将文档保存回服务器。 或者,是否有任何好的组件用于在浏览器中读取/写入Word文档。 我试过使用Telerik编辑器组件没有任何运气。

_IContactsAndGroupsCallback.OnLookUp

我想按照http://msdn.microsoft.com/en-US/library/office/jj900715.aspx#off15_IMIntegration_ImplementRequired_ILyncClient的指南,为Office提供IM状态等。 回应 IContactManager.Lookup(string _lookupString, object _contactsAndGroupsCallback = null, object _state = Type.Missing) 我需要打电话 Microsoft.Office.Uc._IContactsAndGroupsCallback.OnLookup(ContactManager _source, object _lookupResult, AsynchronousOperation _asyncOperation); 第二个参数没有详细记录: 当Office无法确定联系人的SIP地址时,它会调用IContactManager.Lookup方法以使用IM服务查找SIP。 Office在此处传递了可以为联系人找到的最佳数据(例如,只是联系人的电子邮件地址)。 Lookup方法异步返回AsynchronousOperation对象。 当它调用回调时,除了联系人的URI之外,Lookup方法还应该返回操作的成功或失败。 我尝试了不同的结果作为lookupResult(uri字符串,.NET Uri对象,Contact对象)传递不同的结果,但没有成功。 请求的lookupResult类型是什么?