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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2015, 16:05   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как вариант:
Код:
function xls_to_stringgrid(agrid: tstringgrid; axlsfile: string): boolean;
var
xlapp, sheet: variant;
s:string;
x, y, k, r: integer;
begin
result := false;
xlapp := CreateOleObject('Excel.Application');
try
xlapp.workbooks.open(axlsfile);
sheet := xlapp.workbooks[extractfilename(axlsfile)].worksheets[1];
agrid.FixedRows:=0;
agrid.FixedCols:=0;
agrid.RowCount:=0;
agrid.ColCount:=0;
y:=1;

repeat
 x:=1; s:=sheet.cells[x,y];
 while s<>'' do begin
  if agrid.ColCount<x then agrid.ColCount:=agrid.ColCount+1;
  agrid.cells[x-1,y-1]:=s;
  inc(x);
  s:=sheet.cells[x,y];
 end; 
 inc(y); 
 s:=sheet.cells[1,y];
until s<>'';
except
 On E:Exception do ShowMessage(e.Message);
end;

xlapp.quit;
xlapp:=null;
xlapp := unassigned;
sheet := unassigned;
result := true;
end;
Кстати, а ты эту функцию не используешь в потоке случайно? Ибо если так, то стоит вызывать CoInitialize() перед ее использованием.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2015, 16:11   #12
alex89d
Пользователь
 
Регистрация: 05.06.2014
Сообщений: 42
По умолчанию

В потоке нет! А рекурсивно вызываю)))
alex89d вне форума Ответить с цитированием
Старый 08.07.2015, 16:20   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оппа! А че там рекурсии делать?
Как ты умудрился ее в рекурсию превратить то?
Или имеется ввиду "вызываю в некой другой функции, которая рекурсивная"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2015, 16:21   #14
alex89d
Пользователь
 
Регистрация: 05.06.2014
Сообщений: 42
По умолчанию

в другой которая рекурсивная)))))))))
alex89d вне форума Ответить с цитированием
Старый 08.07.2015, 16:23   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Ну не знаю...
Надо сам проект щупать чтоб что-то точнее сказать.
Я, короче, свои идеи предложил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.07.2015, 16:26   #16
alex89d
Пользователь
 
Регистрация: 05.06.2014
Сообщений: 42
По умолчанию

Спасибо! попробую еще как нибудь
alex89d вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 Elvisnya Общие вопросы Delphi 3 28.04.2011 15:59
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54