Tag: com

使用Office Interop将单元格写入Excel的最快方法?

我正在写一个函数来使用VB .NET中的Office Interop将数据导出到Excel中。 我目前正在使用Excel工作表的Cells()方法直接编写单元格: worksheet.Cells(rowIndex, colIndex) = data(rowIndex)(colIndex) 这对于大量的数据来说需要很长时间。 有没有更快的方法来写入大量的数据到Excel一次? 做一些范围会更快?

使用Python上的win32com无法完全closuresExcel

这是我的代码,我发现很多VBA ,.NET框架的答案,很奇怪。 当我执行这个时,Excelclosures。 from win32com.client import DispatchEx excel = DispatchEx('Excel.Application') wbs = excel.Workbooks wbs.Close() excel.Quit() wbs = None excel = None # <– Excel Closes here 但是,当我做了以下,它不closures。 excel = DispatchEx('Excel.Application') wbs = excel.Workbooks wb = wbs.Open('D:\\Xaguar\\A1.xlsm') wb.Close(False) wbs.Close() excel.Quit() wb = None wbs = None excel = None # <– NOT Closing !!! 我发现一些可能的答案堆栈溢出问题Excel进程仍然打开后互操作; 传统的方法不工作 […]

Excel .NET COM – 自动化错误。 该系统找不到指定的文件

我有一个在Excel中由VBA使用的.NET 2.0 COM对象。 它在我的开发机器上工作正常,但是当试图在干净的VM工作站上使用它时,我得到这个错误: 自动化错误。 该系统找不到指定的文件。 该DLL注册“regasm / tlb / codebase mycom.dll”,而不是放在GAC中。 我没有VM框的pipe理权限 有任何想法吗?

检索组件的COM类工厂失败

我正在使用excel对象(COM组件)进行excel操作。 它在我的电脑上工作正常,但是当我将应用程序部署到我们的内联网时,我得到这个错误: 检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80070005 我在我的web.config使用Windows身份validation和impersonate = true。 我做了组件服务的所有设置,但它仍然给出了相同的错误。 请帮忙

C# – 如何以编程方式添加Excel工作表 – Office XP / 2003

我刚刚开始通过C#拨动Excel,以便能够自动创build,并添加到Excel文件。 我可以打开文件并更新其数据并移动现有的工作表。 我的问题是如何添加新的床单? 我试过了: Excel.Worksheet newWorksheet; newWorksheet = (Excel.Worksheet)excelApp.ThisWorkbook.Worksheets.Add( Type.Missing, Type.Missing, Type.Missing, Type.Missing); 但是我得到COMexception ,我的谷歌search没有给我任何答案。 来自HRESULT的exception:0x800A03EC来源是:“Interop.Excel” 我希望有人能把我从痛苦中解救出来。

*每个* Excel互操作对象是否需要使用Marshal.ReleaseComObject发布?

编辑 请参阅如何正确清理Excel互操作对象? 。 最近我遇到了这个问题,它提供了很多关于如何正确处理COM对象的问题的见解。 肯定检查超出第一个(标记)的答案,因为其他答案超越了简单的“不要使用两个点”和“使用ReleaseComObject为每个COM对象”的build议。 我首先回顾了这个问题,因为我意识到尽pipe在注册和部署所有COM对象方面非常全面,但是我的Excel实例仍然没有得到妥善处理。 事实certificate,有一些方法可以创build完全不明显的COM对象(即,即使您从不使用两个点,也可能会错过COM对象)。 此外,即使你是彻底的,如果你的项目增长超过一定的规模,错过一个COM对象的机会接近100%。 当发生这种情况时,很难find你错过的那个。 上面提到的问题的答案提供了一些确保Excel实例被closures的其他技巧。 同时,我对ComObjectManager (下面)做了一个小的(但是很重要的)更新,以反映我从上面链接的问题中学到了什么。 原来的问题 我已经看到了几个例子,其中Marshal.ReleaseComObject()与Excel Interop对象(即,来自命名空间Microsoft.Office.Interop.Excel的对象)一起使用,但我已经看到它在不同程度上使用。 我想知道如果我能摆脱这样的事情: var application = new ApplicationClass(); try { // do work with application, workbooks, worksheets, cells, etc. } finally { Marashal.ReleaseComObject(application) } 或者,如果我需要释放每个创build的对象,如下所示: public void CreateExcelWorkbookWithSingleSheet() { var application = new ApplicationClass(); var workbook = application.Workbooks.Add(_missing); var worksheets = workbook.Worksheets; […]

Excel互操作:_Worksheet或工作表?

我目前正在写关于dynamictypes,我给一个Excel互操作的例子。 我之前几乎没有做任何Office互操作,而且它显示。 C#4的MSDN Office Interop教程使用_Worksheet界面,但也有一个Worksheet界面。 我不知道有什么不同。 在我的荒谬简单的演示应用程序(如下所示)或者正常工作 – 但如果最好的做法决定一个或另一个,我宁愿使用它适当。 using System; using System.Linq; using Excel = Microsoft.Office.Interop.Excel; class DynamicExcel { static void Main() { var app = new Excel.Application { Visible = true }; app.Workbooks.Add(); // Can use Excel._Worksheet instead here. Which is better? Excel.Worksheet workSheet = app.ActiveSheet; Excel.Range start = workSheet.Cells[1, 1]; Excel.Range end […]