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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 10:21   #1
mxroman
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 24
По умолчанию из Delphi в Excel

Здравствуйте, такая задача взять инфу из Edit загнать в Excel ячейку при нажатии кнопки btn... желательно чтобы создавался в конкретном месте файл Excel...

Много чего прочитал но на готовом коде так и не запустился мой D7


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin

end;

end.




Вот код, надо между

begin

end;

Что то написать))) напишите пожалуйста, а то я уже неделю парюсь(((

компонет Office добавил вроде...

Последний раз редактировалось mxroman; 29.12.2011 в 10:26.
mxroman вне форума Ответить с цитированием
Старый 29.12.2011, 12:45   #2
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию

Код:
var xlsx:variant;
begin
xlsx := CreateOLEObject('Excel.Application');
xlsx.Visible:=True;
xlsx.Workbooks.add;
xlsx.save('C:\new.xlsx');
xlsx.Range['A4']:=Edit1.Text;

end;
Multiman вне форума Ответить с цитированием
Старый 11.01.2012, 07:37   #3
mxroman
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 24
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var xlsx:variant;
begin
xlsx := CreateOLEObject('Excel.Application' );
xlsx.Visible:=True;
xlsx.Workbooks.add;
xlsx.save('C:\new.xlsx');
xlsx.Range['A4']:=Edit1.Text;
end;
end;

end.


Ругается на эту вот строчку, D7 стоит, что может быть не подскажете?



procedure TForm1.Button1Click(Sender: TObject);
var xlsx:variant;
begin
//xlsx := CreateOLEObject('Excel.Application' );
//xlsx.Visible:=True;
xlsx.Workbooks.add;
xlsx.save('C:\new.xlsx');
xlsx.Range['A4']:=edt1.Text;

end;

end.

Запустился но выдаёт ошибку, файл экселя не появился в указанном месте(
У меня офис 2003 стоит, xlsx может на xls поменять или как?

Последний раз редактировалось mxroman; 11.01.2012 в 07:51.
mxroman вне форума Ответить с цитированием
Старый 11.01.2012, 10:00   #4
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию

Цитата:
xlsx := CreateOLEObject('Excel.Application' );
В раздел uses необходимо добавить ComObj.

xlsx.save('C:\new.xlsx') здесь указывайте свой путь, свое название и расширение файла. В 2003 вроде .xls. А вообще юзайте 2010=)
Multiman вне форума Ответить с цитированием
Старый 11.01.2012, 14:30   #5
mxroman
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 24
По умолчанию

что за раздел можно по подробней как это сделать???

если 2003 то за место xlsx = xls везде вписывать или как???
mxroman вне форума Ответить с цитированием
Старый 11.01.2012, 14:39   #6
mxroman
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 24
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleServer, ExcelXP, ComObj;

type
  TForm1 = class(TForm)
    exclbjct1: TExcelOLEObject;
    btn1: TButton;
    edt1: TEdit;
    procedure btn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var xlsx:variant;
begin
xlsx := CreateOLEObject('Excel.Application' );
xlsx.Visible:=True;
xlsx.Workbooks.add;
xlsx.save('C:\new.xls');
xlsx.Range['A4']:=edt1.Text;
end;

end.

ВСЁ ПОЛУЧИЛОСЬ БОЛЬШОЕ СПАСИБО!!!)

Ещё вопрос, при нажатии открывается Книга со текстом в колонке, а файл тот что создаётся автоматически он пустой почему то...


надо открыть
xlsx.Workbooks.add;
записать
xlsx.Range['A4']:=edt1.Text;
а потом сохранить автоматически с изменением в колонке, пробывал менять местами строчки не получется

___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.


ИЗВИНЯЮСЬ

Последний раз редактировалось mxroman; 12.01.2012 в 14:02.
mxroman вне форума Ответить с цитированием
Старый 11.01.2012, 16:03   #7
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию

Тогда вот так сделаем:

Код:
var
  Excel, Workbook: variant;
begin
  Excel := CreateOLEObject('Excel.Application');
  Workbook := Excel.Workbooks.add;
  Excel.Visible := true;
  Excel.Range['E8'] := Edit1.Text;
  Workbook.saveas('C:\neww.xls');
  Workbook.Close;
  Excel.Application.Quit;
end;
Последние 2 строчки можете удалить, если вам не нужно автоматически прекращать работу с Excel.
Multiman вне форума Ответить с цитированием
Старый 12.01.2012, 07:00   #8
mxroman
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 24
По умолчанию

БОЛЬШОЕ СПАСИБО!!!!!!!!!!!!

Можно ещё вопросик)

1. Как сделать чтобы при сохранении Книги в указанную ячейку сохранялась дата и время текущее установленное в компе т.е. на винде

2. Есть ли какие нить коды для изменения размеров ячейки, шрифта, стиля и т.д.

Нашёл маленько
Код:
 //Excel.Columns['B'].ColumnWidth:=15;             //ширина столбца
  //Excel.Rows['2'].RowHeight:=15;                  //ширина строки
  //Excel.Rows[4].Font.Size:=14;                    //размер шрифта всей строки
  //Excel.Columns['D'].Font.Size:=14;               //размер шрифта всего столбца
Как сделать шрифт конкретной ячейки, и выравнивание например по середине... и ещё если есть что нить

2 вопрос снят, http://www.delphisources.ru/pages/fa...xcel_work.html там всё что надо))))

3. Как записать код чтобы сохранялась книга по Введённому адресу в Edit2, т.е.
Workbook.saveas('C:\neww.xls'); заменить Workbook.saveas(edt2); а также чтобы дату приплюсовать к имени книги...

пробывал эксперементировал вата(

4. Как картинку на форму вставить чтобы постоянно была!!!

procedure TForm1.img1Click(Sender: TObject);
begin
Img1.Picture.LoadFromFile('c:\678.b mp');
end;


Но это только по шелчку двойному, как сделать чтобы просто отображалась!!!??? И чтобы при переносе экзэшника картинка была в exe

Последний раз редактировалось mxroman; 12.01.2012 в 14:02.
mxroman вне форума Ответить с цитированием
Старый 12.01.2012, 13:17   #9
Multiman
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 91
По умолчанию

Цитата:
1. Как сделать чтобы при сохранении Книги в указанную ячейку сохранялась дата и время текущее установленное в компе т.е. на винде
Код:
Excel.Range['E9'] := DateToStr(date);
  Excel.Range['E10'] := TimeToStr(time);
Цитата:
3. Как записать код чтобы сохранялась книга по Введённому адресу в Edit2, т.е.
Workbook.saveas('C:\neww.xls'); заменить Workbook.saveas(edt2); а также чтобы дату приплюсовать к имени книги...
я бы во так сделал:

Код:
Workbook.saveas('C:\'+edit2.text+'_'+DateToStr(date)+'.xls');
в этом случае в edit просто название файла нужно ввести, если вам надо полностью путь то:
Код:
Workbook.saveas(edit2.text+'_'+DateToStr(date)+'.xls');
Цитата:
4. Как картинку на форму вставить чтобы постоянно была!!!
У компонента Image есть свойство Picture, вот там и загружайте свою картинку.
Multiman вне форума Ответить с цитированием
Старый 12.01.2012, 13:56   #10
mxroman
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 24
По умолчанию

Спасибо большое

Ещё возник одна фигня, при наборе названии кнопки или Label у меня название очень длинное и хотелось бы чтобы записывалось в 2 строчки, т.е. переносом... Как такое организовать


с Label разобрался а вот с кнопкой как быть и Edit если вписываешь длинный текст?

Последний раз редактировалось mxroman; 13.01.2012 в 12:45.
mxroman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из Excel в Delphi I'm_Not_Afraid Помощь студентам 4 04.06.2011 15:14
Excel и Delphi )Игнат( Общие вопросы Delphi 1 28.01.2011 10:52
Delphi Excel (сохранение записи в Excel) Кас Алина Общие вопросы Delphi 4 28.05.2010 09:17
как при импорте из Excel в delphi узнать сколько заполненных строк в книге Excel?чтобы организовать цикл betirsolt БД в Delphi 1 17.01.2010 18:51
Delphi ->Excel->График по таблице->Delphi Avalonix БД в Delphi 2 30.10.2008 14:04