Tag: ole

如何检查文件是否使用OLE在Excel中打开(将excel进程打开)

我如何检查一个文件是否已经在某个Excel实例中打开? 我使用DXL(DOORS)语言,但它应该独立于此语言。 有没有我可以调用来检查打开哪个文件的OLE方法,并将其与path/文件名进行比较? 如果可以的话,我可以只closures那个Excel应用程序中的工作表/文件吗? 编辑:这是我到现在为止,这个工程,但只有一次。 DXL保留一个Excel.exe进程打开,并在接下来的检查,使用实例没有打开的工作簿,甚至没有窗口。 if (confirm "File \"" fPath "\" already exists. Do you want to overwrite it?") { // check if file is opened in any Excel instance OleAutoObj oleWorkbooks = null; OleAutoObj oleExcel = null; OleAutoObj oleWorkbook = null; OleAutoArgs autoArgs = create; oleExcel = oleGetAutoObject("Excel.Application"); bool opened = false; // […]

如何使用msoPattern常量将图案应用于使用Perl Win32 :: OLE的Excel图表中的一系列图案

我正在使用Win32 :: OLE Perl模块来更改图表中特定数据点的模式。 我可以这样做: $chart->SeriesCollection(2)->Points(5)->{Interior}->{Pattern} = xlPatternUp; 例如。 要清楚这与预期完全一样。 然而,xlPattern *常量只允许Excel识别模式的一个子集。 看来整套模式是在msoPattern *常量中指定的(至less是我想要使用的那个)。 我试图以相同的方式使用msoPattern *常量之一: $chart->SeriesCollection(2)->Points(5)->{Interior}->{Pattern} = msoPatternWideUpwardDiagonal; 但是这没有效果。 数据点将以“固定”(默认)模式呈现。 我已经确认我正确导入了常量,例如: use Win32::OLE::Const 'Microsoft Office 12.0 Object Library'; 我怎样才能使用msoPattern *常量来改变模式?

在使用OLE的同一个Excel单元格中有多行

我有一些SAP OLE代码需要一个内部表并将其粘贴到Excel中。 但是,一个字段需要在同一个单元格中有两行。 我已经尝试使用CL_ABAP_CHAR_UTILITIES-NEWLINE和CL_ABAP_CHAR_UTILITIES-VERTICAL TAB和'CR_LF'字符作为回车符,并且这些工作正常单独设置单元格的值时,但使用粘贴方法开始新行(不是新行同一个单元格)。 不幸的是,手动设置单元格的值过于耗费性能。 我也试着录制一个alt + return键的macros,它告诉我excel读取的是=“line1”&char(10)&“line2”,但是我无法使用OLE正确parsing这个。 有什么办法可以使粘贴方法parsing回车字符正确吗? 我目前的做法是低于。 谢谢你的帮助。 CONCATENATE line1 line2 INTO mult_lines SEPARATED BY cl_abap_char_utilities=>newline. 然后,我将mult_lines添加到内部表,并将内部表的每一行连接到gt_data [],其types为:LIKE Table of gv_data(4096)TYPE c。 CALL METHOD cl_gui_frontend_services=>clipboard_export IMPORTING data = gt_data[] CHANGING rc = gv_rc EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4. CALL METHOD OF gv_appl 'Cells' […]

在Excel和PowerPoint文档中使用OLEsearch和replace

我成功地编写了这个代码在MSWord文档中执行search和replace。 现在我需要为xls,xlsx,ppt和pptx做这个工作。 这个想法是“parsing所有的文件,并find每个stringreplace它”。 想象一下,我想用实际的用户名replacestring“ <MY_USER_NAME>" ,这个string是在Excel工作表1,2或3还是在特定的Powerpoint页面中并不重要。 我google代码,但我只是发现小实验,有没有人有更多的经验呢? 谢谢。

OLE microsoft.office.interop.excel和更好的文档

我正在使用microsoft.office.interop.excel msdn网站能够学习如何操作使用OLE的Excel。 但是,要浏览这些文档是非常困难的。 一个简单的例子,A​​pplication.LanguageSettings应该有自己的成员,但从网站是不可能find它们( http://msdn.microsoft.com/en-us/library/microsoft.office.interop .excel._application.languagesettings(v = office.14).ASPX )。 有谁知道更好的方式来获取这些信息? 还有其他的手册/参考吗? 或者可以“检查”返回的对象(例如,Application.LanguageSettings返回一个对象,我们可以在没有实际文档的情况下探究其成员是什么?)。 谢谢

从Excel形状中获取形状types

我有一个Excel工作表,有一些combobox和checkbox。 我正在尝试阅读他们select的值。 我的代码工作正常,如果有checkboxcombobox和崩溃,因为它们中没有ListFillRange。 如何获取形状的形状types,以便我的函数GetControlValue可以返回所有控件types的值。 foreach (Excel.Shape s in ws.Shapes) { string value = GetControlValue(ws, s.Name); } private string GetControlValue(Excel.Worksheet ws, String shapeName) { var selValue = ws.Shapes.Item(shapeName).ControlFormat.Value; //the fill range var r = ws.Shapes.Item(shapeName).ControlFormat.ListFillRange; var oRng = ws.Range[r]; var selectedValue = oRng.get_Item(selValue).Value; return selectedValue; } 还有一个MsoShapeType枚举,但它总是返回msoFormControl

Delphi Excel OLE Chart数据标签问题

我想自动生成具有“文本+百分比”forms的标签的图表,但是我希望在一行上具有文本,并且在下一行中具有百分比。 我使用这个函数来生成图表的标签: E.ActiveChart.ApplyDataLabels(xlDataLabelsShowLabelAndPercent, false,true, true, false, true, true,false, false,'; '); 该函数生成以分号分隔的标签。 所以我基本上想要能够取代'; (新线)?!?! 或者更好的是,检查出VBA后,我发现它在内部被编码为“&Chr(10)&”但是我没有期望的结果,如果我在我的函数中使用这个编码。 所以我的最终结果应该是这样的: 我应该在我的ApplyDataLabels函数中发送什么

调用Excel范围(IRange)上的select时调用0x800a03ec。 范围从工作表的使用范围返回

我试图select“使用的范围”。 我得到工作表的UsedRange,然后我调用它的selectfunction。 我select呼叫时收到HRESULT 0x800a03ec。 代码如下: COleVariant结果; HRESULT hr = AutoWrap(DISPATCH_METHOD,&result,irange,L“Select”,0); 我不会打扰发布AutoWrap函数的代码(除非有人问)。 这是相当知名的,我没有修改它。 我很确定这个irange是好的,因为我尝试了一些调用来validation它是否符合我的期望,而且确实如此。 如果我遍历它,我可以看到每个单元格的内容(这是正确的)。 返回的行数和列数是正确的,并返回“Address”属性。 工作表未locking。 我已经看到了与Locale有关的其他问题,我的系统设置为美国英语,就像我的用户帐户一样。 两者都没有改变。 希望有人能帮助! 更新 :我也试过了 hr = iRange->Select(vResult); 这确实返回S_OK,但它不select范围。 通常,我不能直接调用iRange结构中的函数; 结果是gpf或访问冲突 – 所以我必须使用autowrap函数(驱动一个Invoke调用)。 我不惊讶这个电话不起作用。 我也尝试打开非只读模式,如果我被locking的Excel文件。 这并没有解决这个问题。 我可以通过从范围中获取单个项目(单元格)来select单个单元格,然后调用它的“select”,但是我无法select范围。

VB6中的excel对象

有没有人知道一个很好的在线资源在VB6使用ole excel对象(embedded工作簿,工作表等)的详细信息? 我正在维护一个大量使用这些控件的应用程序,而且我很难让它们为这个程序的用户正常工作。 我能在网上find有关ole excel控件的问答分散的部分是非常有限的,不是很确定。 很明显,我已经读过MSDN上的内容,但是我没有发现它非常有用,所以我想find另一个很好的参考资源。 谢谢

Watir Excel调用不能在虚拟机上工作

我有一个watirtesting,从Web应用程序下载一些信息到Excel文件,然后打开文件来确认内容。 在我的开发框一切工作正常,但计划自动运行(通过Hudson)总是失败,试图打开Excel文件。 我已经检查在两台机器上注册了正确版本的AutoITX3.dll(Ruby 1.8,Watir 1.6.5)。 没有其他版本的AutoITx3在任何一台机器上注册。 如果dll没有注册,Hudson盒子上的错误是预期的错误,但是它在与我的开发盒相同的位置存在于registry中。 这两台机器都是WinXP。 在Hudson框中手动运行testing会导致相同的错误 – 未知的OLE服务器:“Excel.Application”HRESULT错误代码:0x800401f3无效的类string。 我search了类似的错误,看到一个在虚拟机上运行的实例导致了类似的问题,但只有在虚拟机窗口closures的情况下。 我不认为这是一个代码错误,因为它在开发箱上运行。 任何build议debugging这个? TIA,Sabrina