Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.25;
Скачать: CL | DM;

Вниз

Интеграция Delphi и Excel. Мастера откликнитесь.   Найти похожие ветки 

 
Roobee ©   (2004-10-11 17:46) [0]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls,
 Forms, Dialogs, Excel97, OleServer, ActiveX, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   procedure ReleaseExcel;
   function AddWorkbook: Excel97.ExcelWorkbook;
 public
   { Public declarations }
   XLA: Excel97.TExcelApplication;
 end;

var
  Form1: TForm1;
  IWorkbook: Excel97.ExcelWorkbook;
  ISheet: Excel97.ExcelWorksheet;
  IRange: Excel97.Range;
  Names : TStrings;

implementation

{$R *.DFM}

function TForm1.AddWorkbook: Excel97.ExcelWorkbook;
begin
 Result := nil;
 if Assigned(XLA) then begin
   Result := XLA.ActiveWorkbook;
 end;
end;

procedure TForm1.ReleaseExcel;
begin
 if Assigned(XLA) then begin
   if (XLA.Workbooks.Count > 0) and (not XLA.Visible[0]) then begin
     XLA.WindowState[0] := TOLEEnum(xlMinimized);
     XLA.Visible[0] := true;
     if not(csDestroying in ComponentState) then Self.SetFocus;
     Application.BringToFront;
   end;
 end;
 FreeAndNil(XLA);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   ReleaseExcel;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if not Assigned(XLA) then begin
   XLA := Excel97.TExcelApplication.Create(Application);
   XLA.ConnectKind:=ckRunningInstance;
   XLA.Connect;
   XLA.Visible[0] := true;
   if XLA.WindowState[0] = TOLEEnum(Excel97.xlMinimized) then
     XLA.WindowState[0] := TOLEEnum(Excel97.xlNormal);
   XLA.ScreenUpdating[0] := true;
   IWorkbook := AddWorkbook;
   try
     XLA.ScreenUpdating[0] := False;
     //ISheet := IWorkbook.Worksheets.Item["Data"] as Excel97.ExcelWorksheet;
     //IRange:=ISheet.Range["A2",EmptyParam]; IRange.Value:="25";
     //Names := TStringList.Create;
{
 >>    ВОПРОС:
 >> Например в Excel на листе "Data" выделены ячейки С2, С6 и С8
 >> Как здесь получить текущее выделение в Excel?
 >> т.е. Row, Column и Value выбранных ячеек.
}

     //FreeAndNil(Names);
     XLA.ScreenUpdating[0] := True;
    except
     ShowMessage("Исключение во время доступа к MS Excel");
     //FreeAndNil(Names);
     XLA.ScreenUpdating[0] := True;
    end;
   end;
end;

end.


 
Polevi ©   (2004-10-11 19:35) [1]

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


 
YurikGL ©   (2004-10-11 19:59) [2]

http://www.delphimaster.ru/cgi-bin/anketa.pl?id=1084962208

Читать интересное о себе.


 
TUser ©   (2004-10-11 21:10) [3]


> YurikGL ©   (11.10.04 19:59) [2]

Извините, но это пдражание Максиму


 
YurikGL ©   (2004-10-11 21:32) [4]


> TUser ©   (11.10.04 21:10) [3]

Ну не могу ж я в его анкету дописать :-), а набирать каждый раз надоело.


 
Dum   (2004-10-12 09:47) [5]

Можешь. Используй шаблоны. (*.xlt)


 
Dum   (2004-10-12 09:52) [6]

Очень дохлдчиво изложено у Виктора Корнякова!
Удачи...

Суперфункции (№20, 2003 год)
Возможность формирования ваше программой документов непосредственно в формате Word или Excel выгодно отличало бы ее от аналогов...
Суперфункции (№21, 2003 год)
Используя материалы первой и второй частей этой статьи, мы уже имеем возможность предоставить пользователю программу формирования документа в Word в законченном виде
Суперфункции (№22, 2003 год)
Тема третьей части статьи - создание таблиц в редакторе Word из приложений, написанных на Delphi
Суперфункции (№23, 2003 год)
Многие информационно-правовые системы содержат шаблоны документов в формате Word. Используя их и информацию статьи, вы можете легко и быстро создавать отчеты, если пишете программы на Delphi
Суперфункции (№24, 2003 год)
Используя доступ к Word.Application из приложений Delphi, можно вставлять в текст документа записи, рисунки и другие объекты...
Суперфункции (№25, 2003 год)
Начинаем создавать отчеты в Excel из приложений, разрабатываемых в Delphi...
Суперфункции (№26, 2003 год)
Рассмотрим формирование формата данных ячейки листа книги Excel
Суперфункции (№27, 2003 год)
Продолжим программирование свойств ячеек таблиц Excel...
Суперфункции (№28, 2003 год)
Эта часть посвящена функциям настройки общих параметров листа Excel, выбора и настройки принтера, подготовки листа и функциям печати
Суперфункции (№29, 2003 год)
В Excel есть возможность программировать отображение информации в виде диаграмм и графиков, и вы можете воспользоваться этим, чтобы сделать свою программу более информативной
Суперфункции (№31, 2003 год)
Продолжим программирование диаграмм в Excel...
Суперфункции (№34, 2003 год)
Создание DLL-библиотеки для работы с Word/Excel из приложений на Delphi
Суперфункции (№35, 2003 год)
Создание средствами Delphi DLL библиотек для использования в макросах Excel
Суперфункции (№37, 2003 год)
Ответы на вопросы


 
Roobee ©   (2004-10-12 17:51) [7]

Спасибо за советы.
То что предложено - читал. Макросы писАл (именно их и перевожу в анолог на Delphi - вызовы из dll)
конткретизирую вопрос:
VBA макрос ->
Function CheckSelection() As Boolean
Dim counts, n, Gr, Gr1, Skl, Col0 As Integer
Dim Skl1, Title As String

CheckSelection = True

Gr = 0: Skl = 0: Skl1 = ""
   On Error GoTo err_er
   Title = Selection.Areas.Item(1)
   Cells.Find(What:=Title, _
       After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:= _
       xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:= _
       False).Activate "
   Col0 = ActiveCell.Column
   If Col0 <> Range("data_names").Column Then
       CheckSelection = False
       Exit Function
   End If

If Selection.Areas.Count < 1 Then
   CheckSelection = False
   Exit Function
End If
-->
Конструкция в Delphi -> XLA.Selection не дает результата,
а более ни в Workbook ни в Sheet(s) я Selection не обнаружил
:(
Может кто черканет строчку кода (рабочую) плз.


 
YurikGL ©   (2004-10-12 20:01) [8]


> Roobee ©   (12.10.04 17:51) [7]

Работай через CreateOleObject



Страницы: 1 вся ветка

Текущий архив: 2005.07.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.057 c
9-1112720107
beautyk
2005-04-05 20:55
2005.07.25
помогите написать симулянт игры на фондовой бирже


3-1118428253
Andy Nortsov
2005-06-10 22:30
2005.07.25
импорт данных из Excel в Firebird


14-1120154245
@BraIN
2005-06-30 21:57
2005.07.25
Накрылся жесткий диск...


4-1117097965
vidiv
2005-05-26 12:59
2005.07.25
поднять права до system


14-1120142167
slaga
2005-06-30 18:36
2005.07.25
Как узнать експортируемые процедуры и функции "вражеской" dll ки