起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 367|回复: 17

ExcelToTable控件导入数据问题?**

[复制链接]
发表于 2009-3-18 10:46:43 | 显示全部楼层 |阅读模式
ExcelToTable导入数据,选择的Excel文件页名必须是sheet1, 命名其它的导入就出错。
回复

使用道具 举报

 楼主| 发表于 2009-3-18 10:54:45 | 显示全部楼层
如何能动态获得 当前选择Excel的页名
回复 支持 反对

使用道具 举报

发表于 2009-3-18 11:07:27 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 14:36:47 | 显示全部楼层
if oExcel=nil then
      oExcel := ComObj.CreateOleObject('Excel.Application');
    if appExcel=nil then
      appExcel := System.DispatchHelper.Create(oExcel);
    if oWorkbooks=nil then
      oWorkbooks := appExcel.PropertyGet('WorkBooks',[]);
    try
      workbooks := System.DispatchHelper.Create(oWorkbooks);
      sourceworkbook := System.DispatchHelper.Create(workbooks.InvokeMethod('Open',[sFileName]));
      sourceworksheets := System.DispatchHelper.Create(sourceworkbook.PropertyGet('Sheets',[]));
      sourceworksheet := System.DispatchHelper.Create(sourceworksheets.PropertyGet('Item',[1]));
      sSheetName := ObjectHelper.ToString(sourceworksheet.PropertyGet('Name',[]));
    finally
      workbooks.InvokeMethod('Close', []);
    end;

这段代码 只取Excel的 第一页SHEET 名称 ,如何能取得当前选择的页。

如下图,能取得‘基本建设’的名称

1.gif

4.14 KB, 下载次数: 201

回复 支持 反对

使用道具 举报

发表于 2009-3-18 14:53:09 | 显示全部楼层
那请楼主找找vba相关的代码看看吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 16:43:22 | 显示全部楼层
没找到,帮忙找找
回复 支持 反对

使用道具 举报

发表于 2009-3-18 16:44:38 | 显示全部楼层
呵呵,我也是没找到,所以才让你去找找的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-18 17:08:28 | 显示全部楼层
这是我在Delphi 里面实现的, 在平台上如何转换?
var
  ExcelApp, Sheet: Variant;
begin
  if OpenDialog1.Execute then
  begin
    ExcelApp := CreateOleObject('Excel.Application');
    ExcelApp.Workbooks.Open(OpenDialog1.FileName);
    Sheet    := ExcelApp.ActiveSheet;
    Caption  := Sheet.Name;
    Showmessage(Caption);
  end;
回复 支持 反对

使用道具 举报

发表于 2009-3-19 13:17:59 | 显示全部楼层
类似于这样的方式。
      sourceworksheets := DispatchHelper.Create(sourceworkbook.PropertyGet('ActiveSheet',[]));
      strSheetName := ObjectHelper.ToString(sourceworksheets.PropertyGet('Name',[]));
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-19 13:41:35 | 显示全部楼层
代码如下: 改成ActiveSheet  运行出错 。。。。 帮忙看看
  if oExcel=nil then
    oExcel := ComObj.CreateOleObject('Excel.Application');
  if appExcel=nil then
    appExcel := System.DispatchHelper.Create(oExcel);
  if oWorkbooks=nil then
    oWorkbooks := appExcel.PropertyGet('WorkBooks',[]);
  try
    workbooks := System.DispatchHelper.Create(oWorkbooks);
    sourceworkbook := System.DispatchHelper.Create(workbooks.InvokeMethod('Open',[sFileName]));
    sourceworksheets := System.DispatchHelper.Create(sourceworkbook.PropertyGet('ActiveSheet',[]));
    sourceworksheet := System.DispatchHelper.Create(sourceworksheets.PropertyGet('Item',[1]));
    sSheetName := ObjectHelper.ToString(sourceworksheet.PropertyGet('Name',[]));
    jsDialogs.ShowMsg(sSheetName,'');
  finally
    workbooks.InvokeMethod('Close', []);
  end;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 04:25 , Processed in 0.049197 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表