Показать сообщение отдельно
  #8  
Старый 10.09.2010, 22:58
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

>Что такое Excel

--- Переменная, где хранится ссылка на сам Excel (как OLE Automation Server).


>а что такое Numllist?
>Numlist это я понимаю номер листа.

--- Да.


>С какого начинается с 0 или с 1?

--- С единицы.


>То есть можно написать так.
>Excel_SetListActive(1,2);
>Перейдешь на второй лист?

--- Да, но 1-й параметр - это ссылка на Excel.




Пользоваться примерно так :
Код:
function Excel_Open(YesVisible,YesAddWorkBooks : byte) : Variant;
begin
  Result := UnAssigned;
  Result:=CreateOleObject('Excel.Application');
  Result.Visible:=YesVisible;
  if YesAddWorkBooks>0 then begin
     Result.Workbooks.Add(); //добавить рабочую книгу
  end;
end;
  
  
function Excel_OpenFile(fn : string) : Variant;
//Открыть файл Excel
begin
  Result:=UnAssigned;
  fn:=Trim(fn);
  if length(fn)>0 then begin
     if FileExists(fn) then begin
        Result:=Excel_Open(1,0);
        if not VarIsEmpty(Result) then begin
           Result.WorkBooks.Open(fn);
        end;
     end;
  end;
end;


Код:
Var
  ListExcel, Excel : variant;

begin
  Excel := Excel_OpenFile('C:\123.xls');
  ListExcel := UnAssigned;                                  
  if not VarIsEmpty(Excel) then begin
     ListExcel := Excel_GetList(Excel,2);  //получаем ссылку на 2-й лист                                                                      
     if not VarIsEmpty(ListExcel) then begin //проверяем ссылку на корректность
        ListExcel := Excel_SetListActive(Excel,2); //делаем лист-2 активным                                                       
     end
     else begin
        ShowMessage('Ошибка. Лист N 2 не существует (может быть)');
        ListExcel := Excel_AddList(Excel); //добавляем лист                                 
        if not VarIsEmpty(ListExcel) then begin //проверяем ссылку на корректность
           ListExcel := Excel_SetListActive(Excel,2); //делаем новый лист активным                                                       
        end
        else begin
           ShowMessage('Ошибка. Новый Лист не добавлен');
        end;            
     end;            
  end
  else begin
     ShowMessage('Ошибка при загрузке файла '+fn);                            
  end;            
end;
Ответить с цитированием