Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2011, 17:19   #1
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
По умолчанию Из Delphi в Excel

Помогите решить трабл: Из проги надо получить список листов рабочей книги в Excel'е, выбирать нужные листы и записывать туда нужные данные. Вобщем сделать отчет по определенному шаблону. Но где-то в моем коде косяк.

Код:
procedure TMainF.N6Click(Sender: TObject);
var xl,sh        :Variant;
      i,x           :Integer;
      SheetList :TStringlist;
begin
SheetList := TStringList.Create;
xl := createoleobject('excel.application');

xl.displayalerts := false; //отключает запрос на сохранение
xl.workbooks.open(GetCurrentDir + '\rep\example.xls',UpdateLinks := 1);

//Вот тут выдает ошибку "Член группы не найден"  
for i := 1 to xl.Sheets.count do
    SheetList.Add(xl.sheets.item(i).name);

sh := XL.sheets.item[SheetList.IndexOfName('Журнал  несоответствий')+1];
end;
Код не весь но дальше там уже выгрузка. Офис 2007, Delphi XE. Помогите плиз кто может.
По ракетам и хоккею - Россияне всех сильней!
Ky3Heu, вне форума Ответить с цитированием
Старый 14.10.2011, 18:03   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Что бросается в глаза (если мне память не изменяет) скобки должны быть квадратные item[i]
Код:
for i := 1 to xl.Sheets.count do
    SheetList.Add(xl.sheets.item(i).name);
psycho-coder вне форума Ответить с цитированием
Старый 16.10.2011, 02:17   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

свой совет не проверял!
но я бы в первую очеред озаботился тем, с чего начинается нумерация...

Код:
for i := 0 to xl.Sheets.count-1 do
    SheetList.Add(xl.sheets.item(i).name);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.10.2011, 08:44   #4
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
По умолчанию

Вот тут выдает ошибку "неверный индекс"

Код:
sh := XL.sheets.item[SheetList.IndexOfName('Журнал несоответствий')+1];
Пробовал и без +1 и загонять в интеджеровую переменную, один фиг та же ошибка.
По ракетам и хоккею - Россияне всех сильней!
Ky3Heu, вне форума Ответить с цитированием
Старый 17.10.2011, 09:40   #5
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
Радость

Разобрался. Надо было так сделать.
Код:
sh := XL.sheets.item[SheetList.IndexOf('Журнал несоответствий')+1];
Всем спасибо за помощь.
По ракетам и хоккею - Россияне всех сильней!
Ky3Heu, вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi Excel (сохранение записи в Excel) Кас Алина Общие вопросы Delphi 4 28.05.2010 09:17
Delphi+Excel goldlider Общие вопросы Delphi 2 27.05.2010 11:39
как при импорте из Excel в delphi узнать сколько заполненных строк в книге Excel?чтобы организовать цикл betirsolt БД в Delphi 1 17.01.2010 18:51
delphi excel shrews Общие вопросы Delphi 19 08.04.2009 20:20
Delphi ->Excel->График по таблице->Delphi Avalonix БД в Delphi 2 30.10.2008 14:04