Класс TExcelReport |
Этот класс предназначен для формирования отчётов в виде Excel-документов. Данный способ не претендует на какую-либо скорость или особые возможности и нацелен, в основном, на удобство написания кода. Обеспечивается совместимость с MS Office 97.
Компонент разрабатывался для Delphi 5, но работает так же и в Delphi 6, и должен работать в Delphi 7. В более поздних версиях Delphi и его клонов не тестировался.
Подробное описание
Свойства и методы времени исполнения класса TExcelReport, доступные из программы.
Имя свойства / Объявление метода | Тип | Только чтение | Начальное значение свойства | Описание |
WorkSheet | Variant | R/W | Книга Excel. Прежде чем, работать с объектом
класса, требуется присвоить этому объекту уже открытую или созданную книгу MS Excel. |
|
function NewWorksheet: Variant; | Создаёт новую книгу Excel в том же документе и делает её текущей. | |||
function SelectWorksheet( idx: Integer ): Variant; | Выбирает в качестве текущей книгу с заданным индексом. | |||
DefaultFrame | Integer | R/W | Значения маски для обозначения рамки по умолчанию: 15 - все края, 1 - левый, 2 - правый, 4 - верхний, 8 - нижний края | |
FrameWidth | Integer | R/W | Толщина рамки. | |
procedure FrameCells( x1, y1, x2, y2: Integer; w: Integer ); | Обрисовывает рамку вокруг указанного прямоугольника ячеек (от x1:y1 до x2:y2). | |||
NextCellFontBold | Boolean | R/W | Следующая форматируемая ячейка (или группа ячеек, форматируемая одним вызовом), будет иметь утолщенный шрифт, если присвоить этому свойству значение TRUE. | |
NextCellFontItalic | Boolean | R/W | Следующая ячейка - курсивом. | |
NextCellFontUnderline | Boolean | R/W | Следующая ячейка - шрифт подчеркнут. | |
procedure Cell( x1, y1, x2, y2: Integer; const
Text: String; Frames: Integer = -1; TextAlign: TAlignment = taCenter; ForceText: Boolean = FALSE ); |
Форматирует ячейку или группу ячеек (в этом случае они объединяются). Если параметр Frames = -1 (или не задан), то используется DefaultFrame. При ForceText = TRUE, устанавливается атрибут "текст" для поля, это следует использовать для того, чтобы Excel не пытался воспринимать информацию как число или дату. | |||
procedure CellRight( szx, szy:
Integer; const Text: String; Frames: Integer = -1; TextAlign: TAlignment = taCenter; ForceText: Boolean = FALSE ); |
Создаёт новую ячейку справа от предыдущей. szx и szy - размеры ячейки в клетках Excel. |
|||
procedure CellDown( szx, szy: Integer; const
Text: String; Frames: Integer = -1; TextAlign: TAlignment = taCenter ); |
Создаёт новую ячейку ниже предыдущей. | |||
procedure CellOffset( offx,
offy, szx, szy: Integer; const Text: String; Frames: Integer = -1; TextAlign: TAlignment = taCenter ); |
Создаёт новую ячейку по смещению offx, offy относительно левой верхней клетки предыдущей ячейки. | |||
VerticalAlignment | Integer | R/W | Выравнивание текста по вертикали (для далее формируемых ячеек). 0 - по верхнему краю; 1 - по центру; 2 - по нижнему краю. В отличие от NextCellXXXX, значение не сбрасывается после формирования очередной ячейки методами CellXXXX. |
|
procedure ColWidth( x, w: Integer ); | Устанавливает новую ширину для колонки. | |||
procedure WrapText( x1, x2: Integer ); | Устанавливает перенос по словам для диапазона колонок от x1 до x2. | |||
procedure PageOrientation( orientation: Integer ); | Устанавливает ориентацию страницы для печати. Внимание: при отсутствии в системе установленного принтера возникает исключение с выдачей системного сообщения об отсутствии принтера. |
|||
procedure Zoom( z: Integer ); | Устанавливает масштаб для печати (в процентах). При отсутствии в системе установленного принтера по умолчанию вызывает ошибку. |
var Excel, WB, WS: Variant; // Приложение Excel, книга Excel, лист книги Excel. ER: TExcelReport; // Класс форматирования FileName: String; // Имя файла для сохранения (расширение .xls). ..............Excel := CreateOleObject( 'Excel.Application' ); WB := Excel.Workbooks.Add; TRY WS := WB.ActiveSheet; ER := TExcelReport.Create; TRY ER.Worksheet := WS; ER.NextCellBold; ER.Cell( 1, 1, 1, 1, 'Hello!' ); FINALLY ER.Free; END; WB.SaveAs( FileName ); FINALLY WB.Close; WS := Unassigned; Excel := Unassigned; END;
(C) by Vladimir Kladov, 2000-2010