Tag: office interop

来自C#的Outlook 2007 – COMexception,TYPE_E_LIBNOTREGISTERED

我正在尝试制作一个可以打开新的Outlook 2007消息的程序。 我引用了COM选项卡Microsoft Outlook 12.0 ObjectLibrary。 这些项目出现在VS的参考文献中: Microsoft.Office.Core Microsoft.Office.Inerop.Outlook 现在我尝试调用以下代码: var _outlookInstance = new Microsoft.Office.Interop.Outlook.Application(); var _message = (OutlookApp.MailItem)_outlookInstance.CreateItem(OutlookApp.OlItemType.olMailItem); 其中OutlookApp == Microsoft.Office.Interop.Outlook命名空间。 在调用第二行列表时,我不断收到此exception:( InvalidCastException) 无法将“Microsoft.Office.Interop.Outlook.ApplicationClass”类型的COM对象强制转换为接口类型“Microsoft.Office.Interop.Outlook._Application”。 此操作失败,因为由于以下错误,对IID为“{00063001-0000-0000-C000-000000000046}”的接口的COM组件的QueryInterface调用失败:库未注册。 (HRESULT的例外情况:0x8002801D(TYPE_E_LIBNOTREGISTERED))。 该代码在我的其他工作站上适用于Outlook 2003。 我会很感激任何想法如何解决它。

如何在不显示Excel互操作的保存对话框的情况下保存工作簿?

我必须创建一个控制台应用程序,将DataSet导出到Excel。 问题是它不应该弹出保存窗口,它应该自动创建Excel文件。 到目前为止,我有以下代码,但我不知道如何使其自动保存。 非常感谢任何帮助。 public static void CreateWorkbook(DataSet ds, String path) { int rowindex = 0; int columnindex = 0; Microsoft.Office.Interop.Excel.Application wapp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Worksheet wsheet; Microsoft.Office.Interop.Excel.Workbook wbook; wapp.Visible = false; wbook = wapp.Workbooks.Add(true); wsheet = (Worksheet)wbook.ActiveSheet; try { for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { wsheet.Cells[1, i + 1] = […]

检测受密码保护的文档

有没有办法知道doc / ppt / xls文件是否在打开文件之前受密码保护?

如何使用C#和OneNote Interop写入OneNote 2013页面

我看过很多关于此的文章,但所有文章都不完整或者没有回答我的问题。 使用C#和OneNote Interop,我想简单地将文本写入现有的OneNote 2013页面。 目前我有一个OneNote笔记本,其中一个标题为”Sample_Section ”的部分和一个名为”MyPage”的页面。 我需要能够使用C#代码将文本写入此页面,但我无法弄清楚如何或找到任何资源来执行此操作。 我查看了网络上的所有代码示例,但没有人回答这个简单的问题,或者能够做到这一点。 此外,许多代码示例在尝试运行它们时已过时并中断。 我使用了Microsoft代码示例,该示例演示了如何更改Section的名称,但是找不到任何将文本写入Page代码。 我可以看到没有简单的方法可以做到这一点。 我花了很多时间研究这个并在线查看不同的例子,但没有人能够提供帮助。 我已经在OneNote Interop上查看了MSDN文章。 我模糊地理解OneNote Interop如何通过XML但任何额外的帮助理解也会受到赞赏。 最重要的是,我非常感谢一个代码示例,它演示了如何将文本写入OneNote 2013 Notebook页面。 我试过使用这个Stack Overflow答案: 从C#创建新的One Note 2010页面 但是,有两个关于此解决方案的事情没有回答我的问题: 1)标记的解决方案显示了如何创建新页面,而不是如何向其中写入文本或如何使用任何信息填充页面。 2)当我尝试运行标记为解决方案的代码时,我在以下行收到错误: var node = doc.Descendants(ns + nodeName).Where(n => n.Attribute(“name”).Value == objectName).FirstOrDefault(); return node.Attribute(“ID”).Value; 原因是“节点”的值为null,任何帮助都将非常感激。

逐行阅读word文档

我正在尝试使用C#阅读word文档。 我能够获得所有文本但我希望能够逐行读取并存储在列表中并绑定到gridview 。 目前,我的代码只返回一个包含所有文本的项目列表(不是根据需要逐行)。 我正在使用Microsoft.Office.Interop.Word库来读取该文件。 以下是我的代码: Application word = new Application(); Document doc = new Document(); object fileName = path; // Define an object to pass to the API for missing parameters object missing = System.Type.Missing; doc = word.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref […]

如何快速将对象上传到double ?

我使用Microsoft.Office.Interop.Excel我返回一个类型为object[,]的2D数组object[,]其中包含元素的double 。 请注意,索引下限是1而不是默认值0 ,但我可以轻松处理。 如何使用.NET 3.5 很好地将数组转换为double[,] 。 (很好地,我的意思是简洁,或紧凑)。 注意 double[] values_2 = values.Cast().ToArray(); 确实有效,但它通过arrays变平为一维结构。