
10.06.2011, 09:34
|
 |
Местный
|
|
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
|
|
Для начала юзаем такую функцию:
Код:
function FindFile(Dir,mask: string):Tstringlist;
var
SR: TSearchRec;
FindRes: Integer;
begin
result:=TStringList.Create;
FindRes := FindFirst(Dir + mask, faAnyFile, SR);
while FindRes = 0 do
begin
if ((SR.Attr and faDirectory) = faDirectory) and
((SR.Name = '.') or (SR.Name = '..')) then
begin
FindRes := FindNext(SR);
Continue;
end;
Result.Add(Dir+SR.Name);
FindRes := FindNext(SR);
end;
FindClose(SR);
end;
А затем как-то так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var ExFiles:TStringList;
I: Integer;
exApp, exBook, exSheet, exRng, exCell : Variant;
begin
ExFiles:=TStringList.Create;
ExFiles:=FindFile('C:\temp\','*.xls');
for I := 0 to ExFiles.Count - 1 do
begin
try
exApp := CreateOleObject('Excel.Application');
exApp.Visible := True;
exBook := exApp.WorkBooks.Open(ExFiles[i]);
//Первый лист в рабочей книге.
exSheet := exBook.WorkSheets[1];
//Используемый на листе диапазон.
exRng := exSheet.UsedRange;
//Поиск ячейки.
exCell := Unassigned;
exCell := exRng.Find(What:='Мукина');
if TVarData(exCell).VDispatch = nil then
ShowMessage('Соответствие не найдено.')
else
ShowMessage(
'Соответствие найдено: Cell['
+ IntToStr(exCell.Row) + ';' + IntToStr(exCell.Column) + ']'
)
;
//exApp.Quit;
finally
//Отключаемся от объектов OLE-автоматизации.
exApp := Unassigned;
exBook := Unassigned;
exSheet := Unassigned;
exRng := Unassigned;
exCell := Unassigned;
end;
end;
end;
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
|