home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 January / Chip_2003-01_cd1.bin / zkuste / delphi / kolekce / d567 / FLEXCEL.ZIP / FlexCel / UExcelAdapter.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2002-10-10  |  8.6 KB  |  175 lines

  1. unit UExcelAdapter;
  2.  
  3. interface
  4.  
  5. uses
  6.   Classes, SysUtils,
  7.   {$IFDEF ConditionalExpressions}{$if CompilerVersion >= 14} variants,{$IFEND}{$ENDIF} //Delphi 6 or above
  8.   UFlxMessages, UFlxFormats;
  9.  
  10. type
  11.   TExcelFile=class
  12.   protected
  13.     //GetCellValue GetCellData are almost the same in native mode (Except for ofset in columns) They change for OLE, because "Data" are cached and "Values" are not
  14.     function GetCellValue(aRow, aCol: integer): Variant; virtual; abstract;
  15.     procedure SetCellValue(aRow, aCol: integer; const Value: Variant); virtual; abstract;
  16.     function GetCellValueX(aRow, aCol: integer): TXlsCellValue; virtual; abstract;
  17.     procedure SetCellValueX(aRow, aCol: integer; const Value: TXlsCellValue); virtual; abstract;
  18.  
  19.     function GetCommentsCount(Row: integer): integer; virtual; abstract;
  20.     function GetCommentText(Row, aPos: integer): Widestring; virtual; abstract;
  21.     function GetPictureName(Row, aPos: integer): Widestring; virtual; abstract;
  22.     function GetPicturesCount(Row: integer): integer; virtual; abstract;
  23.  
  24.     function GetExcelNameCount: integer; virtual; abstract;
  25.     function GetRangeName(index: integer): Widestring; virtual; abstract;
  26.     function GetRangeR1(index: integer): integer; virtual; abstract;
  27.     function GetRangeR2(index: integer): integer; virtual; abstract;
  28.     function GetRangeC1(index: integer): integer; virtual; abstract;
  29.     function GetRangeC2(index: integer): integer; virtual; abstract;
  30.     function GetRangeSheet(index: integer): integer; virtual; abstract;
  31.  
  32.     function GetActiveSheet: integer; virtual; abstract;
  33.     procedure SetActiveSheet(const Value: integer); virtual; abstract;
  34.     function GetActiveSheetName: WideString; virtual; abstract;
  35.     procedure SetActiveSheetName(const Value: WideString); virtual; abstract;
  36.  
  37.     function GetColumnWidth(aCol: integer): integer;virtual; abstract;
  38.     function GetRowHeight(aRow: integer): integer;virtual; abstract;
  39.     procedure SetColumnWidth(aCol: integer; const Value: integer);virtual; abstract;
  40.     procedure SetRowHeight(aRow: integer; const Value: integer);virtual; abstract;
  41.  
  42.     function GetDefaultColWidth: integer;virtual;abstract;
  43.     function GetDefaultRowHeight: integer;virtual;abstract;
  44.  
  45.     function GetAutoRowHeight(Row: integer): boolean;virtual;abstract;
  46.     procedure SetAutoRowHeight(Row: integer; const Value: boolean);virtual;abstract;
  47.  
  48.     function GetColumnFormat(aColumn: integer): integer;virtual;abstract;
  49.     function GetRowFormat(aRow: integer): integer;virtual; abstract;
  50.     procedure SetColumnFormat(aColumn: integer; const Value: integer);virtual; abstract;
  51.     procedure SetRowFormat(aRow: integer; const Value: integer);virtual;abstract;
  52.  
  53.     function GetColorPalette(Index: TColorPaletteRange): LongWord; virtual; abstract;
  54.     procedure SetColorPalette(Index: TColorPaletteRange; const Value: LongWord); virtual; abstract;
  55.  
  56.     function GetFormatList(index: integer): TFlxFormat;virtual; abstract;
  57.  
  58.     function GetShowGridLines: boolean;virtual; abstract;
  59.     procedure SetShowGridLines(const Value: boolean);virtual; abstract;
  60.  
  61.     function GetCellMergedBounds(aRow, aCol: integer): TXlsCellRange;virtual;abstract;
  62.  
  63.   public
  64.     procedure Connect;virtual;abstract;
  65.     procedure Disconnect;virtual;abstract;
  66.  
  67.     procedure OpenFile(const FileName: TFileName);virtual;abstract;
  68.     procedure CloseFile; virtual; abstract;
  69.  
  70.     property ActiveSheet: integer read GetActiveSheet write SetActiveSheet;
  71.     procedure InsertAndCopySheets (const CopyFrom, InsertBefore, SheetCount: integer);virtual;abstract;
  72.     function SheetCount: integer;virtual;abstract;
  73.     property ActiveSheetName: WideString read GetActiveSheetName write SetActiveSheetName;
  74.     procedure SelectSheet(const SheetNo:integer); virtual; abstract;
  75.  
  76.     property ShowGridLines: boolean read GetShowGridLines write SetShowGridLines;
  77.  
  78.     procedure DeleteMarkedRows(const Mark: Widestring);virtual;abstract;
  79.     procedure MakePageBreaks(const Mark: Widestring);virtual;abstract;
  80.     procedure RefreshPivotTables;virtual;abstract;
  81.     procedure RefreshChartRanges(const VarStr: string);virtual;abstract;
  82.  
  83.     procedure Save(const AutoClose: boolean; const FileName: string; const OnGetFileName: TOnGetFileNameEvent);virtual;abstract;
  84.  
  85.     procedure InsertAndCopyRows(const FirstRow, LastRow, DestRow, aCount: integer; const OnlyFormulas: boolean);virtual;abstract;
  86.     procedure DeleteRows(const aRow, aCount: integer);virtual;abstract;
  87.  
  88.     procedure BeginSheet; virtual; abstract;
  89.     procedure EndSheet(const RowOffset: integer); virtual; abstract;
  90.  
  91.     function CanOptimizeRead: boolean; virtual;abstract;
  92.  
  93.     property RangeCount: integer read GetExcelNameCount;
  94.     property RangeName[index: integer]: Widestring read GetRangeName;
  95.     property RangeR1[index: integer]: integer read GetRangeR1;
  96.     property RangeR2[index: integer]: integer read GetRangeR2;
  97.     property RangeC1[index: integer]: integer read GetRangeC1;
  98.     property RangeC2[index: integer]: integer read GetRangeC2;
  99.     property RangeSheet[index: integer]: integer read GetRangeSheet;
  100.  
  101.     property PicturesCount[Row: integer]: integer read GetPicturesCount;
  102.     property PictureName[Row: integer; aPos: integer]: Widestring read GetPictureName;
  103.     procedure AssignPicture(const Row, aPos: integer; const Pic: string; const PicType: TXlsImgTypes); virtual;abstract;
  104.     procedure GetPicture(const Row, aPos: integer; const Pic: TStream; var PicType: TXlsImgTypes; var Anchor: TClientAnchor);virtual;abstract; //use row < 0 to return all
  105.  
  106.     property CommentsCount[Row: integer]: integer read GetCommentsCount;
  107.     property CommentText[Row: integer; aPos: integer]: Widestring read GetCommentText;
  108.     procedure AssignComment(const Row, aPos: integer; const Comment: Widestring); virtual;abstract;
  109.  
  110.     function CellCount(const aRow: integer): integer;virtual;abstract;
  111.     function GetCellData(const aRow, aColOffset: integer): variant;virtual;abstract;
  112.     function GetCellDataX(const aRow, aColOffset: integer): TXlsCellValue;virtual;abstract;
  113.     procedure AssignCellData(const aRow, aColOffset: integer; const Value: variant);virtual;abstract;
  114.     procedure AssignCellDataX(const aRow, aColOffset: integer; const Value: TXlsCellValue);virtual;abstract;
  115.     function MaxRow: integer; virtual;abstract;
  116.     function MaxCol: integer; virtual;abstract;
  117.     function IsEmptyRow(const aRow: integer): boolean; virtual; abstract;
  118.     property CellValue[aRow, aCol: integer]: Variant read GetCellValue write SetCellValue; //this is for ole handling
  119.     property CellValueX[aRow, aCol: integer]: TXlsCellValue read GetCellValueX write SetCellValueX; //this is for ole handling
  120.  
  121.     function ColByIndex(const Row, ColIndex: integer): integer;virtual; abstract;
  122.     function ColIndexCount(const Row: integer): integer; virtual; abstract;
  123.     function ColIndex(const Row, Col: integer): integer;virtual; abstract;
  124.  
  125.  
  126.     property ColumnWidth[aCol: integer]: integer read GetColumnWidth write SetColumnWidth;
  127.     property RowHeight[aRow: integer]: integer read GetRowHeight write SetRowHeight;
  128.     property DefaultColWidth: integer read GetDefaultColWidth;
  129.     property DefaultRowHeight: integer read GetDefaultRowHeight;
  130.  
  131.     property ColumnFormat[aColumn: integer]: integer read GetColumnFormat write SetColumnFormat;
  132.     property RowFormat[aRow: integer]: integer read GetRowFormat write SetRowFormat;
  133.  
  134.     procedure SetBounds(const aRangePos: integer);virtual;abstract;
  135.     function GetFirstColumn: integer; virtual; abstract;
  136.  
  137.     procedure PrepareBlockData(const R1,C1,R2,C2: integer);virtual;abstract;
  138.     procedure AssignBlockData(const Row,Col: integer; const v: variant);virtual;abstract;
  139.     procedure PasteBlockData;virtual;abstract;
  140.  
  141.     function IsWorksheet(const index: integer): boolean; virtual; abstract;
  142.  
  143.     property AutoRowHeight[Row: integer]: boolean read GetAutoRowHeight write SetAutoRowHeight;
  144.  
  145.     property ColorPalette[Index: TColorPaletteRange]: LongWord read GetColorPalette write SetColorPalette;
  146.  
  147.     property FormatList[index: integer]: TFlxFormat read GetFormatList;
  148.     function FormatListCount: integer;virtual; abstract;
  149.     property CellMergedBounds[aRow, aCol: integer]: TXlsCellRange read GetCellMergedBounds;
  150.   end;
  151.  
  152.   TExcelAdapter = class(TComponent)
  153.   private
  154.     { Private declarations }
  155.   protected
  156.     { Protected declarations }
  157.   public
  158.     function GetWorkbook: TExcelFile;virtual;abstract;
  159.     { Public declarations }
  160.   published
  161.     { Published declarations }
  162.   end;
  163.  
  164. procedure Register;
  165.  
  166. implementation
  167.  
  168. procedure Register;
  169. begin
  170.   //No Register...
  171. end;
  172.  
  173.  
  174. end.
  175.