oleload from excel 2007

本文介绍了如何使用Teradata12版本的oledbprovider支持Office2007文件导入,特别是Excel2007的数据。通过简单的配置更改,可以实现对新版Office文件的支持。

http://miguelmin.itpub.net/post/38274/476403中我提到,老版本oleload不支持对excel2007数据的导入。

在Teradata 12中,已经提供了对office 2007的支持,与前述方法相比,所要改变的仅仅是:

[@more@]

1、ole db provider选择12版本;

2、将 Extended Properties的值设置为:“Excel 12.0;IMEX=1"

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16723161/viewspace-1033115/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16723161/viewspace-1033115/

【完美复现】面向配电网韧性提升的移动储能预布局与动态调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文介绍了基于IEEE33节点的配电网韧性提升方法,重点研究了移动储能系统的预布局与动态调度策略。通过Matlab代码实现,提出了一种结合预配置和动态调度的两阶段优化模型,旨在应对电网故障或极端事件时快速恢复供电能力。文中采用了多种智能优化算法(如PSO、MPSO、TACPSO、SOA、GA等)进行对比分析,验证所提策略的有效性和优越性。研究不仅关注移动储能单元的初始部署位置,还深入探讨其在故障发生后的动态路径规划与电力支援过程,从而全面提升配电网的韧性水平。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、能源系统优化等相关领域的工程技术人员。; 使用场景及目标:①用于科研复现,特别是IEEE顶刊或SCI一区论文中关于配电网韧性、应急电源调度的研究;②支撑电力系统在灾害或故障条件下的恢复力优化设计,提升实际电网应对突发事件的能力;③为移动储能系统在智能配电网中的应用提供理论依据和技术支持。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析,重点关注目标函数建模、约束条件设置以及智能算法的实现细节。同时推荐参考文中提及的MPS预配置与动态调度上下两部分,系统掌握完整的技术路线,并可通过替换不同算法或测试系统进一步拓展研究。
<think>嗯,用户这次询问如何在ABAP OLE中实现Excel的"新建名称管理器"功能。从引用内容来看,用户应该是个ABAP开发者,正在处理与Excel自动化相关的任务,而且可能已经尝试过录制宏但没找到直接对应的方法。 用户提供的三个引用很有价值:引用[1]展示了如何通过录制宏获取Excel属性设置,引用[2]提示所有OLE方法都存储在OLELOAD表中,引用[3]则给出文件操作的示例。不过名称管理器属于Excel的高级功能,可能需要更深度的COM对象操作。 我注意到用户特别强调"不是真正需求",说明ta可能遇到过错误提示或功能限制。确实,ABAP OLE对Excel COM对象的支持是有层级的,像名称管理器这种功能可能需要: 1. 先定位到Excel.Application下的Name对象 2. 再调用Add方法创建命名区域 但ABAP OLE可能没有直接封装这个底层接口,需要自己探索路径。 比较棘手的是,微软官方文档显示NameManager是Application的子对象,但标准ABAP OLE类CL_GUI_OLE可能不支持穿透到这种程度。所以考虑建议两种方案: - 保守方案:用Workbook.Names.Add()创建单个名称,虽然不能打开管理器窗口但能实现功能 - 进阶方案:通过OLE的INVOKE方法直接调用Excel.Application的COM接口 用户上次询问过OLE属性设置,这次问题明显更深入了。ta应该已经掌握了基础操作,现在卡在特定功能的实现上。可能需要提醒注意Excel版本差异,因为2013版之后名称管理器接口有变化。 最后生成的三个相关问题都围绕OLE操作Excel的痛点:第一个针对当前功能的替代方案,第二个拓展到ABAP处理Excel的通用方法,第三个则是实际开发中最常见的文件保存问题。这样应该能覆盖用户后续可能遇到的障碍。 </think>在ABAP OLE中创建Excel的名称管理器需通过COM接口操作`Workbook.Names`集合,以下是具体方法和完整代码示例: ### 实现步骤 1. **初始化OLE对象** 创建Excel应用实例及工作簿: ```abap DATA: lo_excel TYPE ole2_object, lo_workbook TYPE ole2_object, lo_names TYPE ole2_object. CREATE OBJECT lo_excel 'Excel.Application'. CALL METHOD OF lo_excel 'Workbooks' = lo_workbook. CALL METHOD OF lo_workbook 'Add'. ``` 2. **创建命名区域** 通过`Names.Add`方法定义名称管理器条目: ```abap DATA: lv_name TYPE string VALUE 'TaxRate', lv_refers_to TYPE string VALUE '=Sheet1!$B$2'. CALL METHOD OF lo_excel 'Names' = lo_names. CALL METHOD OF lo_names 'Add' EXPORTING #1 = lv_name " 名称 #2 = lv_refers_to. " 引用的单元格或公式 ``` 3. **保存并释放对象** ```abap CALL METHOD OF lo_workbook 'SaveAs' = lv_path. " 指定文件路径 CALL METHOD OF lo_excel 'Quit'. FREE OBJECT lo_names. FREE OBJECT lo_workbook. FREE OBJECT lo_excel. ``` ⚠️ **关键说明** - **直接打开管理器窗口不可行**:ABAP OLE无法直接调用Excel的图形界面(如`Application.GetNames`方法),只能以编程方式管理名称 - **替代方案**:所有命名操作通过`Names.Add`/`Names.Item`实现,引用时可直接用名称(如`=TaxRate*1.1`) - **调试技巧**:使用`SET PROPERTY OF lo_names ...`可修改现有命名规则(如动态调整引用范围)[^1][^2] ### 验证方法 ```abap " 检查名称是否存在 CALL METHOD OF lo_names 'Item' = lo_name_item EXPORTING #1 = 'TaxRate'. IF sy-subrc = 0. WRITE: / '名称管理器创建成功'. ENDIF. ``` --- ### 相关问题 1. **如何通过ABAP OLE动态更新Excel名称管理器的引用范围?** > 使用`SET PROPERTY OF lo_name_item 'RefersTo' = new_range`可实时修改命名区域引用[^1] 2. **ABAP OLE操作Excel时遇到"未知方法"错误如何排查?** > 需检查`OLELOAD`表确认方法支持性,或通过宏录制验证COM接口名称[^2] 3. **用ABAP生成的Excel文件如何避免被其他程序锁定?** > 必须在保存后显式调用`Quit()`和`FREE OBJECT`释放COM对象[^3] [^1]: 通过宏录制可验证Excel COM接口名称,如`Names.Add`对应VBA的`Workbook.Names.Add` [^2]: 所有有效方法记录在SE11的`OLELOAD`表中,需检查`METHOD`字段是否存在目标函数 [^3]: 文件操作后未释放对象将导致进程残留,引发文件访问冲突
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值