如何获取EXCEL中工作表的名称?

caike 2004-12-08 04:55:57
我用ADOConnect.gettablenames()获取了EXCEL工作簿中的工作表名,但是有一些问题。
例:
假设EXCEL工作簿的名字是AA.XLS,其中有两个工作表分别为a1,a2,这两张表是从其他二个工作簿中导入的。当我用GETTABLENAME()方法获取到的名字有a1$_,a1$数据库,a1$,a2$,为什么为多出一些表名?

我用ACCESS试着导入该表,在导入向导中,
如果选择“显示工作表”,则显示的工作表名只有二个a1,a2
如果选择“显示命名区域”,则会报错,并且显示出了a1$_,a1$数据库,xxxx$
(其中上面a2的名字在原先那个表中为xxx,在此时则显示为原来的名字了)

不知道这是怎么回事?
请问大侠们,有没有方法可以解决该问题?或有没有其他方法获取EXCEL工作簿中的所有工作表名?
谢谢!
...全文
744 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangheaaa 2004-12-16
  • 打赏
  • 举报
回复
JAVA EXCEL API 应用示例:

http://blog.csdn.net/qddabao/archive/2004/08/11/71829.aspx
caike 2004-12-16
  • 打赏
  • 举报
回复
如果不用Excel.application这个对象,是否还有其他的方法来建?
当计算机上不装有EXCEL软件时,就不能使用这个对象了。
bee2518 2004-12-08
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses comobj;

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
Excel_Handle: OleVariant;
begin
try
Excel_Handle := GetActiveOleObject('Excel.Application');
except
try
Excel_Handle := CreateOleObject('Excel.Application');
except
Exit;
end;

end;
//showmessage(inttostr(Excel_Handle.Sheets.Count));
for i := 1 to Excel_Handle.Sheets.Count do
showmessage(Excel_Handle.Sheets[i].Name);
end;

end.

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧