关于网友提出的“ 如何获取EXCEL中工作表的名称?”问题疑问,本网通过在网上对“ 如何获取EXCEL中工作表的名称?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 如何获取EXCEL中工作表的名称?
描述: 我用ADOConnect.gettablenames()获取了EXCEL工作簿中的工作表名,但是有一些问题。
例:
假设EXCEL工作簿的名字是AA.XLS,其中有两个工作表分别为a1,a2,这两张表是从其他二个工作簿中导入的。当我用GETTABLENAME()方法获取到的名字有a1$_,a1$数据库,a1$,a2$,为什么为多出一些表名?
我用ACCESS试着导入该表,在导入向导中,
如果选择“显示工作表”,则显示的工作表名只有二个a1,a2
如果选择“显示命名区域”,则会报错,并且显示出了a1$_,a1$数据库,xxxx$
(其中上面a2的名字在原先那个表中为xxx,在此时则显示为原来的名字了)
不知道这是怎么回事?
请问大侠们,有没有方法可以解决该问题?或有没有其他方法获取EXCEL工作簿中的所有工作表名?
谢谢!
解决方案1: JAVA EXCEL API 应用示例:
http://blog.csdn.net/qddabao/archive/2004/08/11/71829.aspx
解决方案2: 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.
以上介绍了“ 如何获取EXCEL中工作表的名称?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3322002.html