Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> значение ячейки excel, значение ячейки excel 
:(
    Опции темы
llrr4343
Дата 5.6.2008, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.12.2007

Репутация: нет
Всего: нет



Доброго времени суток!!!

Задача оч проста, но проблема оч велика: как подключится к уже запущенному excel'ю БЕЗ СОЗДАНИЯ НОВОГО ПРОЦЕССА (есть - excel-процесс подключился и работает с активной книгой и листом, нету - ну и не больно то и хотелось). Есть похожий код, но он цепляет определенную открытую книгу, т.е. приложение работает, стоишь в определенной ячейке на кнопку нажимаешь показывается адрес текущей ячейки все гут, но открываешь еще один excel, и всплывает окно редактирование personals.xls запрещено, и дальнейшее нажатие на кнопку приводит к показу адреса ячейки, ранее открытого и не активного файла:

Код

procedure TForm1.Button1Click(Sender: TObject);
const
  lcid = LOCALE_USER_DEFAULT;
var XL: TExcelApplication;
ASheet: TExcelWorksheet;
i: Integer;
begin
begin
  // запускаем новый экземпляр Excel'я
  XL := TExcelApplication.Create(nil);
  XL.ConnectKind := ckRunningOrNew;
  ASheet := TExcelWorksheet.Create(Self);
  try
    XL.Connect; // подключение
  //  XL.AutoQuit := False; // по умолчанию это свойство True только в unit ExcelXP
  //  XL.Visible[lcid] := True;
  if XL.Workbooks.Count = 0 then begin
      // Excel не запущен или не открыта ни одна книга
      Exit;
    end;

 // ASheet.ConnectTo(xl.ActiveWorkbook.Application as _Worksheet);
   ASheet.ConnectTo(XL.ActiveSheet as _Worksheet);

    try

      with XL.Selection[lcid] as ExcelRange do
       // for i := 1 to Areas.Count do // мультиселект
       //   with Areas[i] do
       ShowMessageFmt('R%dC%d:R%dC%d',
              [Row, Column, Row + Rows.Count - 1, Column + Columns.Count - 1]);

    except
      // Selection - это не Range!
    end;

    // здесь работаем с Excel'ем
  finally
    // отсоединяемся

    XL.UserControl := True; // отдадим управление пользователю
  //  XL.Quit; // закрыть Excel
    XL.Disconnect;
    FreeAndNil(XL);
  end;

end;
end;




Как его подрехтовать, чтобы выбрал ячейку, нажал на кнопку (один раз) и он показал адрес текущей ячейки активной открытой книги, а не на той, на которой стоял курсор? 

Заранее большое человеческое спасибо

Добавлено через 6 минут и 32 секунды
сорри не дописал: и даже той на которую он ругается что редактирование запрещено, и открытых для чтения
PM MAIL   Вверх
Albinos_x
Дата 5.6.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



http://forum.vingrad.ru/forum/topic-84634.html

Добавлено через 2 минуты и 4 секунды
Цитата(llrr4343 @  5.6.2008,  07:34 Найти цитируемый пост)
всплывает окно редактирование personals.xls запрещено, и дальнейшее нажатие на кнопку приводит к показу адреса ячейки, ранее открытого и не активного файла

соединяешся ты с этим файлом... а со вторым нет... вот и показывает на неактивный


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
llrr4343
Дата 6.6.2008, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 4.12.2007

Репутация: нет
Всего: нет



так вот в этом вся и проблема: как подключится к любой открытой excel книги, запущенной не важно когда-до запуска моего приложения или после
PM MAIL   Вверх
Albinos_x
Дата 6.6.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



в статье описано, единственная проблема, решение которой пока не нашлось, как переходить между книгами, если они в разных серверах запущены... если же запук производтся обыными средствами, то все книги будут в одном сервере...

Добавлено через 1 минуту и 55 секунд
здесь (http://zando.org.ru/content/view/29/31/) в 3 части статьи по excel я указывал ссылку на пример


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.