![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Excel [D7, MSSQL]
Alex-kosmonavt © (2003-11-05 14:07:00)
Помогите!
Вижу что в Делфи 7 есть клевые компоненты для работы с Экселем, но немогу понять как создать с их помощью новый файл.Подскажите на примере ExcelApplication или ExcelWorkbook
Малиновский Владимир (2003-11-05 17:14:00) [1]
Ну ты совсем опух...
http://shop.biblio-globus.ru/cpr/GlobusLib.htm
Alex-kosmonavt (2003-11-05 17:11:00) [2]
а ссылочку??
Малиновский Владимир (2003-11-05 17:09:00) [3]
Да пожалуйста.
Вчера копался с компонентами Globus - там есть один для экспорта в Excel. В коде - как раз там всякие Range используются, т.е. довольно эффективно.
Alex-kosmonavt (2003-11-05 16:58:00) [4]
Владимир, а заодно не подскажешь как правильно сделать экспорт набора данных??
везде в примерах встречал,как последовательный перебор ячеек dbGrid, но ведь по сути это ж только отображение, можно как нибудь экспортировать набор данных используя свойства типа Range или что-то вроде этого??
Малиновский Владимир (2003-11-05 16:51:00) [5]
Ну да, типа открываем либо существующий файл, либо создаем новую книгу с именем КнигаXX.
Создай файл по варианту 1, потом сразу сохрани его с нужным именем и снова открой по варианту 2.
Вообще, Excel узнает имя файла при попытке сохранения. Пусть юзеры и обзывают его сами. Или из Delphi заставляй делать SaveAs
Alex-kosmonavt (2003-11-05 16:43:00) [6]
С именем файла не выходит, он пишет что не может найти файл с таким именем, типа проверьте не был ли он перемещен или удален.
Alex-kosmonavt (2003-11-05 16:20:00) [7]
угу, сенькс
Малиновский Владимир (2003-11-05 16:16:00) [8]
Add Method (Workbooks Collection)
Creates a new workbook. The new workbook becomes the active workbook. Returns a Workbook object.
Syntax
expression.Add(Template)
expression Required. An expression that returns a Workbooks object.
Template Optional Variant. Determines how the new workbook is created. If this argument is a string specifying the name of an existing Microsoft Excel file, the new workbook is created with the specified file as a template. If this argument is a constant, the new workbook contains a single sheet of the specified type. Can be one of the following XlWBATemplate constants: xlWBATChart, xlWBATExcel4IntlMacroSheet, xlWBATExcel4MacroSheet, or xlWBATWorksheet. If this argument is omitted, Microsoft Excel creates a new workbook with a number of blank sheets (the number of sheets is set by the SheetsInNewWorkbook property).
Remarks
If the Template argument specifies a file, the file name can include a path.
То есть вместо
exApp.Workbooks.Add(EmptyParam{xlWBATWorksheet},0);
пишешь
exApp.Workbooks.Add(ExtractPath(Application.exename)+MyOpenDialog.FileName,0);
или просто
exApp.Workbooks.Add("C:\MyNewBook.XLS",0);
Alex-kosmonavt (2003-11-05 15:51:00) [9]
Супер!!!
Спасибо!!!
Единственное , а как задать изначально имя создаваемого файла??
ну тоесть я запущу диалог бокс и получу стринг с именем файла, а куда его воткнуть??
Малиновский Владимир (2003-11-05 15:24:00) [10]
Да, не забудь перед всей этой лабудой вызвать конструкторы для
exApp: TExcelApplication;
exWB: TExcelWorkbook;
exWS: TExcelWorksheet;
... или просто размести их на форме...
Малиновский Владимир (2003-11-05 15:21:00) [11]
var
exApp: TExcelApplication;
exWB: TExcelWorkbook;
exWS: TExcelWorksheet;
...
begin
...
try
exApp.Connect;
exApp.Application.EnableEvents := false; // Ускоряем
exApp.SheetsInNewWorkbook[0] := 1;
exApp.Workbooks.Add(EmptyParam{xlWBATWorksheet},0);
exWB.ConnectTo(exApp.ActiveWorkbook);
exWS.ConnectTo(exWB.Sheets[1] as _Worksheet);
except
on E : Exception do begin
ShowMessage("Ошибка активизации приложения Microsoft Excel. "+
E.Message);
exit
end;
end;
BuildReport; // Здесь строим отчет в Excel и делаем его
видимым : exApp.Visible[0] := True; // Ну, что получилос?
finally
exWS.Disconnect;
exWB.Disconnect;
exApp.Disconnect;
end;
end;