![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с Exel из Delphi [D4, XP]
SerMaxx © (2007-06-14 19:42:00)уважаемые мастера подскажите пожайлуста, возможно ли средствами Delphi изменить размер столбца и строки в Exel, при создании отчета? или же установить свойство что бы размер был по ширине текста в ячейке? заранее благодарен за помощь. сли возможно то подскажите как это сделать?
3fc (2007-06-15 10:57:00) [1]P.S. Небольшое замечание.
При создании сложных отчетов в Excel предпочтительнее использовать компоненты страницы Servers, т.к. в этом случае будет задействован механизм т.н. "раннего связывания", в отличие от использования Ole-объектов (функция CreateOleObject()) - соответственно "позднее связывание". На практике 1-й способ существенно повышает быстродействие проги, т.к. все типы данных уже определены на этапе компиляции и маршалинг происходит гораздо быстрее.
Робинзон (2007-06-15 09:37:00) [2]procedure TForm1.ExcelButtonClick(Sender: TObject);
var
XLApp,Colum,Row:Variant;
index,i:Integer;
begin
XLApp:= CreateOleObject('Excel.Application');
XLApp.Visible:=true;
// XLApp.Workbooks.Add(-4167);
//WindowState := -4137;
XLApp.WorkBooks.Open('D:\Проба\pp.xls');
XLApp.Workbooks[1].WorkSheets[1].Name:='Бланк';
Colum:=XLApp.Workbooks[1].WorkSheets['Бланк'].Columns;
Colum.Columns[1].ColumnWidth:=5;
Colum.Columns[2].ColumnWidth:=10;
Colum.Columns[3].ColumnWidth:=15;
Colum.Columns[4].ColumnWidth:=20;
Colum.Columns[5].ColumnWidth:=25;//Размер столбца
Colum:=XLApp.Workbooks[1].WorkSheets['Бланк'].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clRed;
Colum.Rows[1].Font.Size:=14;
Colum.Rows[1].RowHeight:=36;//Размер строки
end;
3fc (2007-06-15 09:11:00) [3]ExcelApplication1.Connect;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam, 1));
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item[1] as _Worksheet);
ExcelWorksheet1.Range['A1', 'A1'].ColumnWidth := 17;
ExcelWorksheet1.Range['A1', 'A1'].RowHeight := 51;
ExcelApplication1.Visible[1] := True;