⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uexcelagent.pas

📁 抽象三层访问数据库示例
💻 PAS
字号:
{*******************************************************}
{       软件名称: --通用--                              }
{       单元名称: uExcelAgent.pas                       }
{       中文名称: Excel访问代理基类                     }
{       单元描述: 实现IExcelAgent接口                   }
{       创    建: SamonHua                              }
{       创建日期: 2007-12-19                            }
{       修    改: 参见VSS记录                           }
{       版权所有 (C)2002-2007 深圳壹平台信息技术有限公司}
{*******************************************************}
unit uExcelAgent;

interface

uses
  SysUtils, Classes, Variants, uIExcelAgent;

type
  TExcelAgent = class(TComponent, IExcelAgent)
  private
    FFileName: string;
    FReaded: Boolean;
  protected
    FActiveSheetIndex: Integer;
    //Excel文件名读写方法
    function GetFileName: string;
    procedure SetFileName(Value: string);
    function GetSheetCount: Integer; virtual;
    function GetActiveSheetIndex: integer; virtual;
    function GetActiveSheetName: string; virtual; abstract;
  public
    constructor Create(AOwner: TComponent); override;
    property FileName: string read GetFileName write SetFileName;
    property Readed: Boolean read FReaded write FReaded default false;
    property SheetCount: Integer read GetSheetCount;
    property ActiveSheetIndex: Integer read GetActiveSheetIndex;
    property ActiveSheetName: string read GetActiveSheetName;
    //读入和保存文件
    procedure ReadFile; virtual; abstract;
    procedure WriteFile; virtual; abstract;
    procedure WriteToStream(Stream: TStream); virtual; abstract;
    //Sheet相关
    //激活Sheet,所有的读写操作都是针对当前的Sheet
    function ActivateSheet(SheetIndex: integer): boolean; virtual;
    function AddSheet(SheetName: string): Integer; virtual; abstract;
    function InsertSheet(SheetName: string; SheetIndex: Integer = -1): Integer; virtual; abstract;
    procedure DeleteSheet(SheetIndex: Integer); virtual; abstract;
    //单元格读方法
    function GetCellValue(Col, Row: integer): Variant; virtual; abstract;
    function GetCellStringValue(Col, Row: integer; Default: string = ''): string; virtual; abstract;
    function GetCellIntegerValue(Col, Row: integer; Default: Integer = 0): Integer; virtual; abstract;
    function GetCellFloatValue(Col, Row: integer; Default: Double = 0): Double; virtual; abstract;
    function GetCellDateTimeValue(Col, Row: integer): TDateTime; virtual; abstract;
    function GetCellBooleanValue(Col, Row: integer; Default: Boolean = False): Boolean; virtual; abstract;
    //单元格写方法
    procedure SetCellValue(Col, Row: integer; Value: Variant); virtual; abstract;
    procedure SetCellStringValue(Col, Row: integer; Value: string); virtual; abstract;
    procedure SetCellIntegerValue(Col, Row: integer; Value: integer); virtual; abstract;
    procedure SetCellFloatValue(Col, Row: integer; Value: Double); virtual; abstract;
    procedure SetCellDateTimeValue(Col, Row: integer; Value: TDateTime); virtual; abstract;
    procedure SetCellBooleanValue(Col, Row: integer; Value: Boolean); virtual; abstract;
    //合并/拆分单元格
    procedure MergedCells(Col1, Row1, Col2, Row2: integer); virtual; abstract;
    procedure DeleteMergedCell(Col1, Row1, Col2, Row2: integer); virtual; abstract;
    procedure DeleteMergedCellByCell(Col, Row: integer); virtual; abstract;
    //获取包含指定单元格的坐标
    function GetMergedCell(Col, Row: integer; var Col1, Row1, Col2, Row2: integer): boolean; virtual; abstract;
  end;

implementation

{ TExcelAgent }

function TExcelAgent.ActivateSheet(SheetIndex: integer): boolean;
begin
  Result := false;
end;

constructor TExcelAgent.Create(AOwner: TComponent);
begin
  inherited;
  FReaded := false;
  FActiveSheetIndex := -1;
end;

function TExcelAgent.GetActiveSheetIndex: integer;
begin
  Result := FActiveSheetIndex;
end;

function TExcelAgent.GetFileName: string;
begin
  result := FFileName;
end;

function TExcelAgent.GetSheetCount: Integer;
begin
  Result := 0;
end;

procedure TExcelAgent.SetFileName(Value: string);
begin
  FFileName := Value;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -