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

📄 ufldemoedit.pas

📁 Delphi/BCB 各种版本都支持的Excel 读写控件.一成功应用在N个项目中 .
💻 PAS
字号:
unit UFlDemoEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, UFlDemoData,
  Grids, ComCtrls, ToolWin, UWaitCursor, ExtCtrls, ActnList, UFormatDialog, UFlxFormats,
  UFlexCelGrid, UFlxMessages, Menus, ZLib;

type
  TDemoEdit = class(TForm)
    TabControl: TTabControl;
    Data: TFlexCelGrid;
    Panel1: TPanel;
    ActionList1: TActionList;
    ActionCopyFormat: TAction;
    ActionPasteFormat: TAction;
    ActionCellFormat: TAction;
    ActionRowFormat: TAction;
    ActionColFormat: TAction;
    ActionZoom: TAction;
    CoolBar1: TCoolBar;
    ToolBar: TToolBar;
    BtnSave: TToolButton;
    BtnClose: TToolButton;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton8: TToolButton;
    TrackBarZoom: TTrackBar;
    PanelZoom: TPanel;
    ToolButton9: TToolButton;
    ActionReadOnly: TAction;
    MainMenu1: TMainMenu;
    View1: TMenuItem;
    Zoom1: TMenuItem;
    Format1: TMenuItem;
    CopyFormat1: TMenuItem;
    PasteFormat1: TMenuItem;
    N1: TMenuItem;
    CellFormat1: TMenuItem;
    ColFormat1: TMenuItem;
    ColFormat2: TMenuItem;
    ActionSaveAs: TAction;
    ActionClose: TAction;
    File2: TMenuItem;
    ReadOnly1: TMenuItem;
    ReadOnly2: TMenuItem;
    N2: TMenuItem;
    Close1: TMenuItem;
    ToolButton7: TToolButton;
    MenuZoom: TPopupMenu;
    N101: TMenuItem;
    N251: TMenuItem;
    N1001: TMenuItem;
    N2001: TMenuItem;
    N4001: TMenuItem;
    Action10: TAction;
    Action25: TAction;
    Action100: TAction;
    Action200: TAction;
    Action400: TAction;
    Action50: TAction;
    N501: TMenuItem;
    N102: TMenuItem;
    N252: TMenuItem;
    N502: TMenuItem;
    N1002: TMenuItem;
    N2002: TMenuItem;
    N4002: TMenuItem;
    ActionFullWorksheet: TAction;
    ToolButton10: TToolButton;
    N3: TMenuItem;
    FullWorksheet1: TMenuItem;
    procedure TabControlChange(Sender: TObject);
    procedure ActionCopyFormatExecute(Sender: TObject);
    procedure ActionPasteFormatExecute(Sender: TObject);
    procedure ActionCellFormatExecute(Sender: TObject);
    procedure ActionRowFormatExecute(Sender: TObject);
    procedure ActionColFormatExecute(Sender: TObject);
    procedure TrackBarZoomChange(Sender: TObject);
    procedure ActionZoomExecute(Sender: TObject);
    procedure ActionReadOnlyExecute(Sender: TObject);
    procedure ActionSaveAsExecute(Sender: TObject);
    procedure ActionCloseExecute(Sender: TObject);
    procedure Action10Execute(Sender: TObject);
    procedure Action25Execute(Sender: TObject);
    procedure Action50Execute(Sender: TObject);
    procedure Action100Execute(Sender: TObject);
    procedure Action200Execute(Sender: TObject);
    procedure Action400Execute(Sender: TObject);
    procedure ActionFullWorksheetExecute(Sender: TObject);
  private
    ClipFormat: integer;
    FormatDialog: TFormatDialog;

    { Private declarations }
  public
    procedure FillData;
    { Public declarations }
  end;

implementation

{$R *.DFM}

{ TDemoEdit }

procedure TDemoEdit.FillData;
var
  p: integer;
begin
  TabControl.Tabs.Clear;

  for p:=1 to DemoData.FlexCelImport.SheetCount do
  begin
    DemoData.FlexCelImport.ActiveSheet:=p;
    TabControl.Tabs.Add(DemoData.FlexCelImport.ActiveSheetName);
  end;

  DemoData.FlexCelImport.ActiveSheet:=1;
  TabControl.TabIndex:=DemoData.FlexCelImport.ActiveSheet-1;
  Data.LoadSheet;
end;

procedure TDemoEdit.TabControlChange(Sender: TObject);
begin
  Data.ApplySheet;
  DemoData.FlexCelImport.ActiveSheet:= TabControl.TabIndex+1;
  Data.LoadSheet;
end;

procedure TDemoEdit.ActionCopyFormatExecute(Sender: TObject);
begin
  ClipFormat:=DemoData.FlexCelImport.CellFormat[Data.Row, Data.Col];
end;

procedure TDemoEdit.ActionPasteFormatExecute(Sender: TObject);
begin
  DemoData.FlexCelImport.CellFormat[Data.Row, Data.Col]:=ClipFormat;
  Data.Invalidate;
end;

procedure TDemoEdit.ActionCellFormatExecute(Sender: TObject);
begin
  if FormatDialog=nil then
  begin
    FormatDialog:= TFormatDialog.Create(Self);
    FormatDialog.SetData(DemoData.FlexCelImport);
  end;
  FormatDialog.Caption:='Choose CELL Format:';
  FormatDialog.Load;
  FormatDialog.SelectedFormat:=DemoData.FlexCelImport.CellFormat[Data.Row, Data.Col];
  if FormatDialog.ShowModal<>mrOk then exit;
  DemoData.FlexCelImport.CellFormat[Data.Row, Data.Col]:=FormatDialog.SelectedFormat;
end;

procedure TDemoEdit.ActionRowFormatExecute(Sender: TObject);
begin
  if FormatDialog=nil then
  begin
    FormatDialog:= TFormatDialog.Create(Self);
    FormatDialog.SetData(DemoData.FlexCelImport);
  end;
  FormatDialog.Caption:='Choose ROW Format:';
  FormatDialog.Load;
  FormatDialog.SelectedFormat:=DemoData.FlexCelImport.RowFormat[Data.Row];
  if FormatDialog.ShowModal<>mrOk then exit;
  DemoData.FlexCelImport.RowFormat[Data.Row]:=FormatDialog.SelectedFormat;
  Data.Invalidate;
end;

procedure TDemoEdit.ActionColFormatExecute(Sender: TObject);
begin
  if FormatDialog=nil then
  begin
    FormatDialog:= TFormatDialog.Create(Self);
    FormatDialog.SetData(DemoData.FlexCelImport);
  end;
  FormatDialog.Caption:='Choose COLUMN Format:';
  FormatDialog.Load;
  FormatDialog.SelectedFormat:=DemoData.FlexCelImport.ColumnFormat[Data.Col];
  if FormatDialog.ShowModal<>mrOk then exit;
  DemoData.FlexCelImport.ColumnFormat[Data.Col]:=FormatDialog.SelectedFormat;
  Data.Invalidate;
end;

procedure TDemoEdit.TrackBarZoomChange(Sender: TObject);
begin
  Data.Zoom:=(Sender as TTrackBar).Position;
  PanelZoom.Caption:=Format('%d%%',[ Data.Zoom]);
end;

procedure TDemoEdit.ActionZoomExecute(Sender: TObject);
begin
  if TrackBarZoom.Position<25 then TrackBarZoom.Position:=25 else
  if TrackBarZoom.Position<50 then TrackBarZoom.Position:=50 else
  if TrackBarZoom.Position<100 then TrackBarZoom.Position:=100 else
  if TrackBarZoom.Position<200 then TrackBarZoom.Position:=200 else
  if TrackBarZoom.Position<400 then TrackBarZoom.Position:=400 else
  TrackBarZoom.Position:=10;
end;

procedure TDemoEdit.ActionReadOnlyExecute(Sender: TObject);
begin
  ActionReadOnly.Checked:=not ActionReadOnly.Checked;
  Data.ReadOnly:=ActionReadOnly.Checked;
end;

procedure TDemoEdit.ActionSaveAsExecute(Sender: TObject);
begin
  if not DemoData.XlsSaveDialog.Execute then exit;
  if FileExists(DemoData.XlsSaveDialog.FileName) then DeleteFile(DemoData.XlsSaveDialog.FileName);

  Data.ApplySheet;
  DemoData.FlexCelImport.Save(DemoData.XlsSaveDialog.FileName);
end;

procedure TDemoEdit.ActionCloseExecute(Sender: TObject);
begin
  Close;
end;

procedure TDemoEdit.Action10Execute(Sender: TObject);
begin
  TrackBarZoom.Position:=10;
end;

procedure TDemoEdit.Action25Execute(Sender: TObject);
begin
  TrackBarZoom.Position:=25;
end;

procedure TDemoEdit.Action50Execute(Sender: TObject);
begin
  TrackBarZoom.Position:=50;
end;

procedure TDemoEdit.Action100Execute(Sender: TObject);
begin
  TrackBarZoom.Position:=100;
end;

procedure TDemoEdit.Action200Execute(Sender: TObject);
begin
  TrackBarZoom.Position:=200;
end;

procedure TDemoEdit.Action400Execute(Sender: TObject);
begin
  TrackBarZoom.Position:=400;
end;


procedure TDemoEdit.ActionFullWorksheetExecute(Sender: TObject);
begin
  ActionFullWorksheet.Checked:=not ActionFullWorksheet.Checked;
  Data.FullWorksheet:= ActionFullWorksheet.Checked;
  Data.LoadSheet;
end;

end.

⌨️ 快捷键说明

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