Tag: ole

如何查询embedded的OLE应用程序的显示名称

我想查询embedded在我的Delphi XE4 Win32应用程序中的OLE应用程序的显示名称。 TOleContainer类,并且容器可以包含不同的OLE应用程序(例如MS Word , MS Excel ,…),取决于在其中编辑的文件。 我想要返回的是Microsoft Word 2007 (或2010或2013或…)或至lessMicrosoft Word ,因为它显示在正常Word实例的标题栏中。 编辑: TOndrej的答案是非常有帮助的。 谢谢。 不幸的是,正如我在他的回答下的评论所描述的那样,它没有显示真正的应用标题。 我在SO上发现了这个问题 。 据说,我可以使用_Application.Caption属性访问主机应用程序的标题。 我没有_Application的实例,但IOleObject 。 Typecast( MyOleObjectInterface as _Application )失败。 OleObject如何作为_Application被访问?

通过OLE的Excel自动化 – 抑制/捕获对话框错误?

我通过C#程序和OLE刷新Excel 2007数据连接。 大部分工作是通过单个Workbooks.RefreshAll()语句完成的。 正如刷新电子表格的性质,各种各样的事情可能会出错。 在刷新过程中,程序可能会提供有关“无法从文件读取数据”的对话框错误消息,以及有关“重叠透视表报告”的消息。 这两个都是致命的,我应该能够捕捉到这些错误,并退出我的程序时出错。 不幸的是,我似乎无法捕捉到这些问题,相反,我的自动化程序就坐在这里,直到我进入对话框。 有谁知道是否有可能以编程方式捕获在Excel对话框中显示的错误,而不是让他们显示给用户?

如何使WPF应用程序作为可embeddedMS Excel的OLE对象?

我想让我的WPF应用程序作为一个OLE对象,可以从MS-Excel插入和启动。 当我打开Excel-2003并转到Insert-> Object时,在Create New选项卡中显示OLE对象列表。 我想注册我的WPF应用程序作为一个OLE对象,以便它也显示在列表中。 用户可以从Excel文件中插入和启动应用程序。

用作从代码调用的计算引擎的Microsoft Excel电子表格

我有一个MS Excel电子表格,做一些复杂的计算。 我想创build一个脚本,将创build一个CSV文件与电子表格中获得的结果。 我可以使用我的编程语言重写电子表格中的逻辑(例如Ruby,但我打算使用不同的语言),但是当有人更改电子表格中的逻辑时,我将不得不更新我的代码。 是否有可能使用MS Excel电子表格作为黑盒,一个计算引擎,可以从我的代码中调用? 然后,我只能写我的代码中的CSV部分和input数据下载,整个计算逻辑可以留在电子表格中,可以很容易地更新。 理想情况下,我不想将任何CSV生成或数据下载代码添加到电子表格,因为它是由域专家(而不是程序员)使用的。 此外,我必须从互联网下载一些数据,并将其作为input值传递给电子表格。 我想在Git之类的版本控制系统中保留这部分代码。 另外需要注意的是电子表格使用Solver Excel插件。 任何帮助如何做到这一点将非常感激。 谢谢,米歇尔

通过VBA将Excel表格复制到PowerPoint并保存

我正在尝试大量生成一系列PowerPoint演示文稿。 我的幻灯片将包含两个元素,都创build和从Excel复制。 我正在使用Office 2010。 第一个元素是一个顺利完成的SmartArtgraphics。 第二个是我想复制为Table对象 (而不是链接的图像)的几个单元格。 在“形状”浪费了几个小时之后,我发现了这一点,但粘贴之后我无法操纵它的高度和宽度 。 PPApp.CommandBars.ExecuteMso ("PasteSourceFormatting") 然后,当我尝试使用以下内容保存演示文稿时,我意识到只有SmartArt被保存; 即使在粘贴之后发生saveAs命令,粘贴的表格也不会被保存。 PPApp.CommandBars.ExecuteMso ("PasteSourceFormatting") PPPres.SaveAs saveName, ppSaveAsDefault PPPres.Close 更奇怪的是,我发现当我添加一个msgbox命令进行debugging时,在上面的粘贴和保存之间,表格被正确保存。 但是,我试图批量生产这些文件,不能坐下来closures每个消息框。 我的问题:1.粘贴后如何更改桌子的高度/宽度/alignment方式? 2.如何将表格保存在我的文件中? 编辑,我现在的代码 Sub copyAllToPpt() Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide Dim PPName, xlName As String xlName = ActiveWorkbook.Name Dim saveName As String Workbooks(xlName).Activate Dim y As Integer […]

Delphi 7 Excel Ole对象的文本字体颜色

如何设置字体颜色的单元格(半文本其他颜色)在delphi7和MS Excel 2007 +? 例:

如何在自动化不同的本地化版本的Excel时正确设置NumberFormat属性

我遇到了以下问题: 当从我的Delphi程序通过OLE自动化Excel,并尝试设置单元格的NumberFormat属性时,Excel正在期待格式化string以本地化的格式。 正常情况下,通过在Excel中loggingmacros来检查格式时,Excel将如下所示:Cells(1,2).NumberFormat =“#,## 0.00” 这意味着千位分隔符是“,”而小数点分隔符是“。”。 实际上,我正在使用Excel的本地化版本。 在我的语言环境中,千位分隔符是“”,小数点分隔符是“,”。 所以每当从我的Delphi程序中设置NumberFormat,我需要指定它像“### 0,00”。 我的问题是:显然,如果我在程序中对这些值进行硬编码,那么当我的程序与英文或另一个不同的本地化版本的Excel一起使用时将会出现exception。 有没有“通用”的方式来设置NumberFormat属性? (使用默认的英文区域?) 谢谢! 更新:我发现了一个更优雅的方式来做到这一点: http : //www.delphikingdom.com/asp/viewitem.asp?catalogid=920&mode=print这是在俄罗斯(我不会说太多)但你可以很容易地理解代码。

如何导出使用POI的Excel中的embedded文件?

我编写了一个java基础程序,下面是使用Apache POI在Excel表格中embedded3种文件(ppt,doc,txt)。 现在这个文件,我想用它的原始格式导出。 这个怎么做? 参考链接是使用Apache POI将文件embedded到Excel中 。 我从这个链接制作了节目。 总之我想在embedded式文件上导出function。 我已经使用下面的代码尝试了上面的问题,但它不适用于在Excel表中导出embedded的文件: 这是试图解决的代码: public static void main(String[] args) throws IOException { String fileName = "ole_ppt_in_xls.xls"; ReadExcel(fileName); } public static void ReadExcel(String fileName) throws IOException { FileInputStream inputFileStream = new FileInputStream(fileName); POIFSFileSystem fs = new POIFSFileSystem(inputFileStream); HSSFWorkbook workbook = new HSSFWorkbook(fs); for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) { // […]

Excel无法插入超过255个字符?

我正在使用OLE DB驱动程序插入超过255个字符到Excel工作表中,但出现错误: exception详细信息:System.Data.OleDb.OleDbException:该字段太小,无法接受您尝试添加的数据量。 尝试插入或粘贴更less的数据。 似乎从这个线程 ,这是一个Excel的限制。 即使微软网站似乎也这样说。 那么这是否意味着我无法编程,但我可以手动? 因为我在Excel中手动input时可以input超过255个字符。 那么它是一个Microsoft.ACE.OLEDB.12.0(AccessDatabaseEngine.exe)驱动程序的限制?

delphi ole excel容器,保存文件

Delphi中这个c ++问题的语法是什么? 在使用oleContainer之后,并试图执行SaveDocumentAs,这些都不起作用。 我认为这可能是一个很好的select。 更新:谢谢你的翻译,但是excel文件在调用之后会变得很糟糕 var ExcelOle: TOleContainer; begin ExcelOLE.CreateObjectFromFile(FileName, False); ExcelOle.OleObject.application.workbooks[1].save; end;