Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Exell и база данных


KidMan ©   (2002-09-30 22:24:00) 

Здравствуйте!
Скажите пожалуйста как связаться с каким нить документом екселя и заполнить определенные ячейки его данными... не важно какими... пусто то бум строки из БД или просто значения каких то переменных...?
Заранее благодарю Мастера!


Lakich   (2002-10-01 13:11:00) [1]

//********сначала определим-установлен ли Ексел вообще на данной машине:
if not Form1.IsOLEObjectInstalled("Excel.Application") then
begin
Application.MessageBox("Excel не установлен,экспорт
невозможен !!!"+#13+"Обратитесь к
программистам.","Информация",0);
exit;
end;
//********
// Координаты левого верхнего угла области, в которую будем выводить данные
BeginCol := 1;
BeginRow := 15;
ColCount := 14;
C:=14;
// Создание Excel
XlAp := CreateOleObject("Excel.Application");
// Отключаем реакцию Excel на события, чтобы ускорить вывод информации
XlAp.Application.EnableEvents := false;
// Создаем Книгу (Workbook)
TempWay:=GetCurrentDir+"\Template\";//путь к шаблону
Workbook := XlAp.WorkBooks.Add(TempWay+"Имяфайла.xls");
// Размеры выводимого массива данных
RowCount := Table(или DataSource).RecordCount;
R:=odsGraphPrint.RecordCount;
// Создаем Вариантный Массив, который заполним выходными данными
TabGrid := VarArrayCreate([1, RowCount+1, 1, ColCount], varVariant);
Table.First;i:=0;//Заполняем массив данными
while not Table.Eof do
begin
Inc(i,1);
TabGrid[i,1]:=Table.FieldByName("имя поля").value;
.........
Table.Next;
end;

// Левая верхняя ячейка области, в которую будем выводить данные
Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
// Правая нижняя ячейка области, в которую будем выводить данные
Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + RowCount, BeginCol +
ColCount - 1];
// Область, в которую будем выводить данные
Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
Range.Value :=TabGrid ;//сам вывод
// Делаем Excel видимым
XlAp.Visible := true;
TabGrid:=UnAssigned;//убираем из памяти массив

//сама функция для определения установлен ли Ексел
function TfmMain.IsOLEObjectInstalled(Name: String): boolean;
var
ClassID: TCLSID;
Rez : HRESULT;
begin
// Ищем CLSID OLE-объекта
Rez := CLSIDFromProgID(PWideChar(WideString(Name)), ClassID);

if Rez = S_OK then // Объект найден
Result := true
else
Result := false;
end;
//ОБЯЗАТЕЛЬНО Uses ComObj,ActiveX,Excel97!!!!!
ну и конечно
var XlAp, Workbook, Range, Cell1, Cell2, TabGrid,R,C : Variant;


kkot   (2002-10-01 09:54:00) [2]

http://www.delphikingdom.com/hellowolrd/excelsm.htm


V-A-V   (2002-10-01 09:39:00) [3]

Попробуй библиотеку для работы с Wodr и Excel
http://vdovin-av.narod.ru/moduls.html


Рыжик   (2002-10-01 08:50:00) [4]

http://www.afalinasoft.com/rus/tips/index.html


KidMan   (2002-09-30 23:55:00) [5]

Ребят... правда горю... хелп плиииз!


Наверх

Титульная страница Поиск, карта сайта Написать письмо