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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ole, Excel.Application, копирование листа таблицы Excel 
V
    Опции темы
Fedia
Дата 25.10.2006, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

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



Всех приветствую !

Имеется таблица Excel, содержащая 1-н лист (Sheet). Необходимо сделать дубль этого листа в той же таблице Excel. Пробовал по разному и победить не могу: 
Код

var
  Excel, sheet: Variant;
begin
  Excel:=CreateOleObject('Excel.Application');
  try
    Excel.visible:=true;
    Excel.DisplayAlerts:=false;
    Excel.WorkBooks.Add('C:\1.xls');
    sheet:=Excel.ActiveWorkbook.Sheets[1];
    sheet.Copy(EmptyParam, sheet);
    //sheet.Copy(EmptyParam, 1);
    //sheet.Copy(EmptyParam, 'Лист1');
    //...
  except
    Excel.Quit;
    Excel:=null;
  end;
end;

Накопал несколько примеров использования метода Copy, может кому-нибудь удастся разобраться с этой задачей. 
ЗЫ: работа с Excel должна происходить именно через Ole (CreateOleObject('Excel.Application')).


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Albinos_x
Дата 26.10.2006, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



что конкретно победить не можешь?
ошибка вылетает? не туда вставляется? ещё чего-то?
Код
...  
  var ran : OleVariant;  
 ...  
  ran:=ExcelWorkbook.ActiveSheet;  
  ExcelApplication.Sheets.Copy(ran,EmptyParam,0);  
  ...


т.е указываешь страницу в первом параметре... третий lcid... в твоём варианте наверно необезателен, точно сейчас не скажу...


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

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



Цитата(Albinos_x @  26.10.2006,  08:54 Найти цитируемый пост)
что конкретно победить не можешь?
ошибка вылетает? не туда вставляется? ещё чего-то?

Не работал казалось бы элементарный, приведенный выше код. На строке sheet.Copy(EmptyParam, sheet); экселем генерировалась ошибка: “ошибка сервера” (это нужно было конечно написать сразу).

Я уже разобрался, поэтому и пометил тему как решенную. Приведенный в первом постинге пример абсолютно рабочий. Проблема была с антивирусом касперским, который блокировал ряд действий Excel-я, в том числе и копирование листа. Вот такие бывают "забавные" ситуации, полностью сбивающие с толку...


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Albinos_x
Дата 26.10.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


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

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



бывает... но у меня таких конфликтов не возникало... ни с касперским, ни с др.Вебом, ни с НОД32... 


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

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



Цитата(Albinos_x @  26.10.2006,  13:25 Найти цитируемый пост)
бывает... но у меня таких конфликтов не возникало... ни с касперским, ни с др.Вебом, ни с НОД32... 

Антивирус Касперского для Windows Workstations (5.0.528). У него даже специальные настройки есть по блокировке некоторых действий офиса, выставленные по умолчанию. Но это я знаю сейчас, а 25.10.2006 пытался пробить головой стену, не понимая, почему все работало, за исключением копирования листа excel-я. Такие дела млин...


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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