Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 18.07.2003
Откуда: Саратов ...пока
Как так сделать в Delphi 7, не используя базы данных и прочее
Т.е. имеется форма с тремя TEdit' ами, кнопочкой их - Уть и они в ОТкрытом экселе в нужных ячеечках :)
КАК?

_________________
воскрес



Партнер
 

Member
Статус: Не в сети
Регистрация: 20.11.2003
У меня самого офигительная проблема с взаимодействием с Exel - через BDE и OLE - не получаеться !!! У меня сотрудник умеет на VBasic - он пишет макрос, который из моего текстовика подгружает в открытуй документ данные


 

Member
Статус: Не в сети
Регистрация: 07.02.2004
Откуда: Казахстан, Ш...
gee
Вот небольшой кусок кода, одной из моих прог.
там есть то что тебе надо.

procedure TForm1.ToolButton8Click(Sender: TObject);
var i,j,x:integer;
v:string;
xl:variant; //объект Excel
label l1,l2;
begin
if (inwork) or (not ClientDataSet1.Active) then exit;
bitbtn1.Enabled:=false;
try
XL := CreateOleObject('Excel.Application');
except
showmessage('Не могу запустить Excel, или программа не установленна.');
exit;
end;
OpenDialog1.Filter:='Файлы Excel|*.xls';
if OpenDialog1.Execute then
begin
XL.Workbooks.open(OpenDialog1.FileName);
end else begin
xl.quit;
exit;
end;
j:=0;
repeat
if vartostr(xl.cells[J+1,1].value)<> '' then j:=j+1
else goto l1;
application.ProcessMessages;
until false;
l1:
if j=0 then begin
showmessage('Первая строчка данных пуста преобразование будет прервано.');
goto l2;
end;

ProgressBar1.Position:=0;
ProgressBar1.Max:=j;
panel2.Visible:=true;

ClientDataSet1.Last;
InWork:=true;
Stop:=false;
for x:=1 to j do
begin
ClientDataSet1.Insert;
for i:=0 to ClientDataSet1.Fields.Count-1 do
begin
v:=vartostr(xl.cells[x,i+1].value);
ClientDataSet1.Fields[i].Asstring:=v;
editing:=true;
end;
ProgressBar1.Position:=x;
application.ProcessMessages;
if stop then goto l2;
end;
l2: xl.quit;
panel2.Visible:=false;
InWork:=false;
ClientDataSet1.Post;
bitbtn1.Enabled:=true;
end;

_________________
Уважаю ASUS и AMD


 

Member
Статус: Не в сети
Регистрация: 18.07.2003
Откуда: Саратов ...пока
А как-то просто запустить *.xls файл из Дэльфи возможно?
типа
winexec (PChar('c:\projects\1.xls'), sw_show); ?

_________________
воскрес


 

Member
Статус: Не в сети
Регистрация: 24.09.2003
Откуда: г. Кострома
Цитата:
А как-то просто запустить *.xls файл из Дэльфи возможно?


что значит запустить *.xls файл? это вобще как? и давно ли они стали исполняемыми?

нужно делать как говорит Ins

сначала нужно подключится к экселю, а потом из него открыть документ и с ним работать


 

Member
Статус: Не в сети
Регистрация: 07.02.2004
Откуда: Казахстан, Ш...
gee
Ну если только запустить:
ShellExecute(Application.MainForm.Handle, nil,pchar('compare.exe'), pchar(file_name),pchar(cur_path), SW_SHOWNORMAL);

вместо 'compare.exe' вставь имя нужного файла, а вместо
pchar(file_name) и
pchar(cur_path) поставь nil

и посмотри справку по этой функции.

_________________
Уважаю ASUS и AMD


 

Member
Статус: Не в сети
Регистрация: 18.07.2003
Откуда: Саратов ...пока
Ins спсб :) прописал ещё uses ShellAPI;
и всё поперло, ща буду дальше делать :wink:

_________________
воскрес


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan