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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Sheets by name - возможно ? 
V
    Опции темы
uranpro
Дата 7.7.2008, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



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

возможно как-то так написать ? (синтаксис не знаю)

Код

try
 sheets1.sheetbyname(sheets2.item[i].name);
 shcopy;
except
 sheets1.add(sheets2.item[i].name);
 shcopy;
 end;



--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Rodman
Дата 7.7.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



а если по номеру обращаться?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
uranpro
Дата 7.7.2008, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



по номеру обращаться я умею. мне нужно по имени


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
kemiisto
Дата 7.7.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



uranpro, Вам нужно добавлять листы только с определённым названием?

Добавлено через 1 минуту и 48 секунд
И что с листами делать не понятно: копировать полностью или только создавать в другом файле пустой лист с тем же именем?
Цитата(uranpro @  7.7.2008,  17:45 Найти цитируемый пост)
многие листы с одинаковыми именами.

И что делать в этом случае?

Добавлено через 4 минуты и 6 секунд
Я вот тут накидал 
Код

var
  E, Source, Dest: Variant;
  i: Integer;
begin
  E := CreateOleObject('Excel.Application');
  E.Workbooks.Open(ExtractFilePath(Application.ExeName) + 'source.xls');
  E.Workbooks.Open(ExtractFilePath(Application.ExeName) + 'dest.xls');
  Source := E.WorkBooks[1];
  Dest := E.Workbooks[2];
  for i := 1 to Source.Sheets.Count do
  begin
    Dest.Sheets.Add(After := Dest.Sheets[Dest.Sheets.Count]);
    Dest.Sheets[Dest.Sheets.Count].Name := Source.Sheets[i].Name;
    Dest.Save;
  end;
  E.Quit;
  E := Unassigned;
end;

Это просто создание в одном файле листов с названиями из другого. Проект приаатачу, но, видимо, это не совсем то? 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  excel.zip 13,75 Kb


--------------------
PM MAIL WWW GTalk Jabber   Вверх
uranpro
Дата 7.7.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



kemiisto, в коде написано: если не получилось обращение по имени(листа с этим именем нет), то создается новый лист. мне нужно узнавать, есть ли лист с нужным именем. не через циклы

Добавлено через 1 минуту и 46 секунд
в обоих файлах по 1101 листу, если буду юзать циклы, то я максимум пройдусь по ним 1101*1101 раз, а связь delphi  с excel`ем медленная!(

Добавлено через 3 минуты и 15 секунд
я и хочу узнать, как можно обойтись без циклов, мб можно ссылаться по имени листа.


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
kemiisto
Дата 7.7.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



uranpro, так можно вместо числового индекса прямо имя писать:
Код

try
  Dest.Sheets.Add(After := Dest.Sheets[Dest.Sheets.Count]);
  Dest.Sheets[Dest.Sheets.Count].Name := Source.Sheets['тра-ля-ля'].Name;
finally
  Dest.Save;
end;



--------------------
PM MAIL WWW GTalk Jabber   Вверх
uranpro
Дата 7.7.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



kemiisto, ВОТ !!! Source.Sheets['тра-ля-ля'].Name; !!! СПАСИБО, это мне и нужно))

Добавлено через 1 минуту и 20 секунд
просто создать лист с тем же именем, только в другом сервере


--------------------
I want a perfect soul
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.0680 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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