Tag: com

Delphi – 设置Excel单元格背景颜色渐变

Delphi西雅图,Excel 2013年。我需要设置单元格的背景是一个渐变。 如果是单色,我可以设置背景颜色,但是我无法获得渐变的语法。 部分挑战是单元格的渐变是一个IDispatch。 以下代码将设置单个背景颜色。 procedure TForm1.GradientTestClick(Sender: TObject); var oExcel : ExcelApplication; RawDataSheet :_Worksheet; ThisCell : ExcelRange; begin oExcel := CreateOleObject('Excel.Application') as ExcelApplication; oExcel.Visible[LOCALE_USER_DEFAULT] := True; // Add a New Workbook, with a single sheet oExcel.Workbooks.Add(EmptyParam, LOCALE_USER_DEFAULT); // Get the handle to the active Sheet, and insert some dummy data RawDataSheet := oExcel.ActiveSheet as _Worksheet; […]

如何在C ++上为MS Excel实现一个简单的加载项

我需要在C ++中实现Excel 2010或更高版本的加载项的帮助,此加载项的唯一function是重命名当前的Excel工作表。 插件应该在名称为“Test Add-in”的function区上创build新的自定义选项卡,该选项卡包含名称为“我的function”的组,该组包含带有名称为“重命名当前表”的一些图片的大button。 点击button后,我应该显示下面的对话框: 用户可以input新名称,点击确定,之后,当前表单的名称将被更改。 我知道我需要使用#import指令获取对Office API的引用,使用ATL来包装COM对象, MFC或WTL来创build对话框,但我并不反对使用上述方法。

从Excel调用.NET COM Web服务包装器

我正在尝试从Excel 2003模块调用Web服务。 我已经实现它的方式是创build一个.NET COM库,其中包含我需要公开的所有类/方法。 当我尝试调用从Excel中查询Web服务的方法时,执行只是在该行上停止,没有任何错误。 可能是与引用有关吗? 我正在使用Microsoft.Web.Services2.dll。 我试图把它放在C:\ WINDOWS \ SYSTEM32 – 没有运气 谢谢!

来自COM Addin的SheetBeforeDoubleClick

我正在尝试在C#中为Excel XP编写COM插件,禁用双击单元格来编辑它。 我想popup一个框,说这样编辑一个单元格被禁止,然后停止所有的执行。 通过在Microsoft的文档查看这似乎是一个非常简单的任务,你创build一个应用程序事件AppEvents_SheetBeforeDoubleClickEventHandler与签名func(object sheet, Range Target, ref bool Cancel) ,您设置Cancel为true,使执行停止。 我有以下几点: public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) { Excel.Application app = application as Excel.Application; app.SheetBeforeDoubleClick += Excel.AppEvents_SheetBeforeDoubleClickEventHandler(beforeDoubleClick); } void beforeDoubleClick(object sheet, Excel.Range Target, ref bool Cancel) { MessageBox.Show("Cannot edit cells this way sorry."); Cancel = true; } 显示消息框,但单元格然后进入编辑模式,但是,如果我有同样的事情从VBA它的作品。 使用下面的代码同样的事情发生在一个VB.NET插件。 […]

如何使用IDispatch从非托pipec ++调用C#的DLL?

我有一个C#DLL,我需要从非托pipeC ++调用。 我的主要问题是我的c ++代码对应于一个excel插件,可以安装excel 2003和excel 2007,当我在excel 2007中安装我的加载项,我尝试调用我的C#DLL,它工作得很好,但由于某种原因,我仍然无法find,在Excel 2003中崩溃,Excel显示我一个运行时错误信息,当debugging我的C代码,我可以看到代码失败时试图创build我的C#DLL的实例,它说,即使我注册regasm类没有注册。 这是我的C#代码: namespace ManagedDLL { [ Guid("3C80EE60-D9B8-4daf-89BE-6C7B748F613C"), InterfaceType( ComInterfaceType.InterfaceIsDual), ComVisible(true) ] public interface ICalculator { [DispId(1)] int main(string args, IntPtr _handle); }; [ Guid("5134F342-5B7F-4db2-94F0-F450610419CF"), ProgId("myapp.CCOMEntryPoint"), ClassInterface(ClassInterfaceType.None), ComDefaultInterface(typeof(ICalculator)), ComVisible(true) ] public class COMEntryPoint : ICalculator { public int main(string args, IntPtr _handle) { string[] _args = args.Split(new char[] { […]

在php中禁用popup消息

当我上传一个Excel文件,我用COM()打开并自动将其转换为XML。 它工作正常,但是当我运行它时,它始终显示来自Microsoft Excel的消息:名为'''的文件已存在于此位置。 你想replace它吗? 我可以select是否和取消。 通常我会select是的。 但我不希望用户每次点击是。 我可以禁用这个吗? 请告知我是否需要张贴相关的代码。 谢谢 更新这里是我的代码使用unlink()的一部分。 $workbook = $_FILES['file']['tmp_name'] $sheet = "Sheet1"; $ext = substr($workbook, strrpos($workbook, '.') + 1); $ex = new COM("Excel.sheet") or die("Did not connect"); //Open the workbook that we want to use. $wkb = $ex->application->Workbooks->Open($workbook) or die("Did not open"); $path = "D:\b2\\test1.xml"; $format = 46; unlink($path); $path […]

COM自动化后如何强制Excel进程退出?

在PHP中,我使用COM对象创build一个XLS文件。 $excel = new COM("Excel.Application") or die("Excel is not installed!"); $excel->WorkBooks->Add(); … $excel->WorkBooks[1]->SaveAs($path); $excel->Quit(); $excel->Release(); $excel = null; 这段代码运行后,Excel.exe进程仍在内存中〜6分钟。 如何强制这个过程立即退出?

我们的COM库在Excel 2010中“不再支持文件格式”

问这是在黑暗中的一点点,但不幸的是,我们已经用尽了所有其他选项。 我们的软件包的.exe文件公开了一个COM库,许多客户使用Excel电子表格中的VBAfunction。 一个特定的客户最近重新安装Windows,然后升级我们的软件包的版本,现在得到这个错误消息,当试图导入我们的EXE作为COM参考Excel: http : //msdn.microsoft.com/en-us/library /office/gg264377.aspx 有没有人见过这个? 该软件是使用Borland的Delphi 7,但我不知道这是否有很大的不同。 查看registry,我们的COM库的GUID在那里,正确的文件位置。 我们已经用尽了所有常见的技巧来修复我们的软件奇怪的症状。 如果有人有任何想法或已经在自己的环境中看到这个,那么帮助将不胜感激!

分配给Excel.Application.ActivePrinter时发生COMException

我有一个函数,我通过一个Microsoft.Office.Interop.Excel.Application实例。 该function使用Windows内置的传真打印机或Microsoft XPS Document Writer将文件保存为tiff图像。 但是,当我尝试分配给应用程序的ActivePrinter属性时,会引发一个COMException,并显示以下消息: 来自HRESULT的exception:0x800A03EC 代码如下: 'Save the current default printer Dim strDefaultPrinter As String = excelApp.ActivePrinter 'Assign printer string constant to ActivePrinter – throws exception excelApp.ActivePrinter = FAX_PRINTER excelApp.ActiveWorkbook.PrintOutEx(, , , , , True, "c:\RestOfFilePath…") ' Print to file = true 'Reset the default printer excelApp.ActivePrinter = strDefaultPrinter 所使用的打印机都被确认为安装在registry中。 一个类似的function,需要一个Word应用程序类工作正常。 我相当新的COM相关的东西,我有一种感觉,这可能只是我玩的相关的愚蠢无知,但我可以find几乎没有任何关于此search谷歌/ stackoverflow,除了一个或两个旧的,未答复线程。 […]

将自定义的Excel驱动程序写入.Net中的OLAP通信

我正在使用Excel,我想在Excel中使用我的OLAP多维数据集。 所以我需要写我的自定义Oledb提供与我的OLAP服务器通讯到Excel。 我知道有一些接口通过实现他们我可以build立一个桥梁,我可以与我的olap立方体沟通。 任何人都可以告诉我如何开始写我的司机或任何想法。 如何我可以与Excel与外部数据源进行通信