Tag: com

C#铸造系统.__ comobject类types

我有一个Excel加载项,我目前正试图build立一个unit testing框架。 对于unit testing,我遵循这个指南: http : //blogs.msdn.com/b/varsha/archive/2010/08/17/writing-automated-test-cases-for-vsto-application.aspx 它似乎工作正常,直到我想从我的界面返回一个类对象。 指定类对象作为返回types在调用方法时抛出“返回参数具有无效types”exception。 将类的返回types更改为对象允许我调用方法并获取对象,但是现在我无法将其转换为类并按预期方式使用,因此在尝试时会得到此exception消息: > Unable to cast COM object of type 'System.__ComObject' to class type > 'XYCoordinates'. Instances of types that represent COM > components cannot be cast to types that do not represent COM > components; however they can be cast to interfaces as long as the […]

C#Excel后期绑定设置数据库与单元格

我有一个interresting问题,由于重写我的出口我跑了一些麻烦。 随着下面的代码,我尝试在我的Excelworkbook中填充分割的范围。 结果是真的很奇怪,Range(tpl_p1)的第一部分填充正确,但是第二部分填充非常奇怪,请参阅截图。 openExcel(@"C:\bla\test.xlsx", "Tabelle1"); ArrayList posData = new ArrayList(); int lines = 30; string[,] fo = new string[lines, 7]; for (int a = 0; a < lines; a++) { fo[a, 0] = "1"; fo[a, 1] = "2"; fo[a, 2] = "3"; fo[a, 3] = "4"; fo[a, 4] = "5"; fo[a, 5] = "6"; fo[a, […]

PHP无法通过COM打开Excel工作簿

此代码正常工作,直到到达打开的工作簿行,然后失败。 <?PHP $file = "C:\\xampp\\htdocs\\php\\test.xls"; openWorkbook($file); function openWorkbook($file) { $excel = new COM("Excel.Application") or die ("ERROR: Unable to instantaniate COM!\r\n"); echo "Application name: {$excel->Application->value}\r\n"; echo "Loaded version: {$excel->Application->version}\r\n"; // FAILS ON THIS LINE! $Workbook = $excel->Workbooks->Open($file) or die("ERROR: Unable to open " . $file . "!\r\n"); } 有没有人有任何build议,为什么这可能会发生? 我已经看了很多其他的post,但没有人似乎有这个具体问题。

删除引用而不重新启动项目

我有两个项目,一个是testing,另一个是相当实质的。 这是在Visual Studio 2008上使用C#WinForms。 在实质性的项目上,我曾经参考过Office.Interop.Excel,并且这样做,它为Office14添加了一个COM参考。 但是,这导致它不能在不包含该文件夹的机器上工作。 所以,作为一个testing,我下载了一个名为EPPlus的新的第三方DLL,在那里我做了一个快速和肮脏的一个button程序,做大的做,但规模小得多。 使用第三方的DLL,我能够得到它的工作。 它可以读取Excel文件,将某些内容写入特定的单元格,然后将其保存到其他位置。 但是,当我将这个dlljoin到我的大型项目中,并尽我所能去除对COM对象库的引用时,它仍然在其他机器上寻找它。 我的问题是,有没有办法切断这个连接,或find一种方法来摆脱它的好,而不需要重拍我的整个项目?

与Excel和其他MS Office应用程序的最大COM连接数

我想知道什么,如果有的话,Excel COM连接的最大数量是多less?

使用c#插入excel范围作为行和复制格式的更好的方法

在向它们写入数据之前,我必须多次插入具有许多合并单元格,样式和数字格式的范围行。 当我插入一行不复制maerged单元格,样式或数字格式等。因此,我select范围作为一行并插入相同,并复制前一行到新插入的行。 这个过程需要越来越多的时间,因为我不得不这样做了很多次。 我就是这样做的 Range rangeToInsert = Worksheet1.get_Range("a" + Convert.ToString(20), "z" + Convert.ToString(20)); Range rangeToInsertRow= rangeToInsert.EntireRow; rangeToInsertRow.Insert(app.XlInsertShiftDirection.xlShiftDown, false); Range InsertedRowRange= Worksheet1.get_Range("a" + Convert.ToString(newrowNum), "z" + Convert.ToString(newrowNum)); rangeToInsert.copy(InsertedRowRange); 请build议是否有任何优化我的代码做行插入/复制风格更快。

php excel com_exception:无法查找“工作簿”:访问被拒绝

我正在尝试使用PHP的COM接口来查询数据库,并从Excel工作簿中的数据创build数据透视表。 我在本地计算机上configuration了DCOM设置,以授予用户本地访问,本地启动和本地激活权限以及完全控制configuration权限。 我也尝试了所有三个标识设置。 这是我正在使用的代码: <?php $application = new COM("Excel.Application") or die("Unable to load Excel."); $workbook = $application->Workbooks; $workbook = $workbook->Add(); $sheet = $workbook->Worksheets(1); $sheet->Activate(); $application->Quit(); ?> 这是我得到的错误: PHP Fatal error: Uncaught exception 'com_exception' with message 'Unable to lookup `Workbooks': Access is denied. 这是不同于我之前得到的错误告诉我,我没有访问Excel COM对象。 设置权限固定的。 环境是: Windows Server 2012 R2 Excel 2010(64位) PHP 5.5.9(64位)

部署一个DLL(COM对象)到Excel VBA参考

我开发了(VB.Net)VS2010中的一个DLL在Excel中使用(Windows 7 64位与32位Office 2010) 类库具有“使程序集COM可见”和“注册COM互操作”选中。 目标CPU使用.Net 4.0 Framework设置为x86。 当我在开发计算机上构build这个DLL时,可以在Excel vba中selectDLL作为参考,Excel将正确执行DLL。 当我试图将DLL部署到其他Window 7机器时,问题出现了。 我已成功(?)使用以下命令行注册DLL(作为pipe理员) C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "C:\Program Files\CompanyName\XXX_DLL.dll" 但是DLL不会出现在Excel vba中作为参考select。 我在哪里犯了一个错误/我在做什么错了? 非常感谢。

Powershell COM Excel可见不工作

我写了一个简短的Powershell脚本来复制一些Excel数据。 脚本工作正常,但它每次运行时打开Excel,甚至认为可见的属性设置为$ false。 任何人有任何想法为什么? 我已经search了答案,但找不到任何解决scheme。 我也显示了属性,并设置正确。 打开工作簿时打开Excel。 谢谢, 克里斯 码: ## function to close all com objects function Release-Ref ($ref{ ([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref) -gt 0) [System.GC]::Collect() [System.GC]::WaitForPendingFinalizers() } #Read-Host -Prompt "Press Enter to exit" ##################################################################### ## Load excel com objects attach to file ##################################################################### $ExcelPath = 'C:\Chris_Test.xls' $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $False write-host "Visible […]

当我将其设置为activeworkbook时,为什么我的Workbook对象为空?

我曾经见过类似的问题,但是我发现没有一个能解决我的具体情况。 我在Visual Studio 2010中有一个Excel 2007 COM加载项,用C#编写。 当我将活动手册加载到function区代码中的工作簿对象时,它工作正常。 当我以Windows窗体的forms进行操作时,每次都会从activeworkbook中返回null。 以下是我的使用语句和错误不断发生的代码片段。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using Office = Microsoft.Office.Core; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; using System.Drawing; ————————————————— Excel.Application xlApp; xlApp = (Excel.Application)Marshal.GetActiveObject("Excel.Application"); Excel.Workbook xlWkbk = (Excel.Workbook)xlApp.ActiveWorkbook; Excel.Worksheet xlWksht = (Excel.Worksheet)xlWkbk.ActiveSheet; 任何帮助将不胜感激!