📄 uasgdemo.pas
字号:
unit UAsgDemo;
interface
uses
Windows, Messages, SysUtils,
{$IFDEF ConditionalExpressions}{$if CompilerVersion >= 14} variants,{$IFEND}{$ENDIF} //Delphi 6 or above
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, BaseGrid, AdvGrid, UExcelAdapter, XLSAdapter,
AdvGridExCel, UFlxMemTable, ExtCtrls, ComCtrls, UWaitCursor;
type
TMainForm = class(TForm)
XLSAdapter: TXLSAdapter;
FlxAdvSg: TFlxAdvSg;
TabControl: TTabControl;
Panel1: TPanel;
AdvStringGrid1: TAdvStringGrid;
OpenDialog: TOpenDialog;
cbAutoResize: TCheckBox;
cbUnicode: TCheckBox;
cbExcelFormat: TCheckBox;
Panel2: TPanel;
cbLoadImages: TCheckBox;
edStartGridCol: TEdit;
edStartGridRow: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
edStartXLSCol: TEdit;
edStartXLSRow: TEdit;
Panel3: TPanel;
btnLoadNative: TButton;
btnLoadOle: TButton;
btnSaveNative: TButton;
btnSaveOle: TButton;
Panel4: TPanel;
edZoom: TEdit;
Label5: TLabel;
cbZoomSaved: TCheckBox;
SaveDialog: TSaveDialog;
Label6: TLabel;
edSheetName: TEdit;
Panel5: TPanel;
Label7: TLabel;
TimeFormat: TLabel;
edDateFormat: TEdit;
edTimeFormat: TEdit;
edDateTimeEvent: TCheckBox;
procedure btnLoadNativeClick(Sender: TObject);
procedure btnLoadOleClick(Sender: TObject);
procedure TabControlChange(Sender: TObject);
procedure cbZoomSavedClick(Sender: TObject);
procedure btnSaveOleClick(Sender: TObject);
procedure btnSaveNativeClick(Sender: TObject);
procedure edDateTimeEventClick(Sender: TObject);
procedure FlxAdvSgDateTimeFormat(Sender: TAdvStringGrid; const GridCol,
GridRow, XlsCol, XlsRow: Integer; const Value: WideString;
var DateFormat, TimeFormat: WideString);
private
procedure ImportSettings;
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.ImportSettings;
begin
FlxAdvSg.AutoResizeGrid:=cbAutoResize.Checked;
FlxAdvSg.UseUnicode:=cbUnicode.Checked;
FlxAdvSg.KeepExcelCellFormat:=cbExcelFormat.Checked;
FlxAdvSg.LoadImages:=cbLoadImages.Checked;
FlxAdvSg.XlsStartRow:=StrToInt(edStartXLSRow.Text);
FlxAdvSg.XlsStartCol:=StrToInt(edStartXLSCol.Text);
FlxAdvSg.GridStartRow:=StrToInt(edStartGridRow.Text);
FlxAdvSg.GridStartCol:=StrToInt(edStartGridCol.Text);
FlxAdvSg.ZoomSaved:=cbZoomSaved.Checked;
FlxAdvSg.Zoom:=StrToInt(edZoom.Text);
FlxAdvSg.DateFormat:=edDateFormat.Text;
FlxAdvSg.TimeFormat:=edTimeFormat.Text;
end;
procedure TMainForm.btnLoadNativeClick(Sender: TObject);
var
i: integer;
WaitCursor: IWaitCursor;
begin
if OpenDialog.Execute then
begin
WaitCursor:=TWaitCursor.Create;
AdvStringGrid1.Clear;
TabControl.Tabs.Clear;
ImportSettings;
FlxAdvSg.XLSImport(OpenDialog.FileName,1);
for i:=0 to FlxAdvSg.SheetNamesCount-1 do
TabControl.Tabs.Add(FlxAdvSg.SheetNames[i]);
end;
end;
procedure TMainForm.btnLoadOleClick(Sender: TObject);
var
WaitCursor: IWaitCursor;
begin
if OpenDialog.Execute then
begin
WaitCursor:=TWaitCursor.Create;
AdvStringGrid1.Clear;
TabControl.Tabs.Clear;
AdvStringGrid1.LoadFromXLS(OpenDialog.FileName);
end;
end;
procedure TMainForm.TabControlChange(Sender: TObject);
var
WaitCursor: IWaitCursor;
begin
WaitCursor:=TWaitCursor.Create;
AdvStringGrid1.Clear;
ImportSettings;
FlxAdvSg.XLSImport(OpenDialog.FileName, TabControl.TabIndex+1);
end;
procedure TMainForm.cbZoomSavedClick(Sender: TObject);
begin
edZoom.Enabled:=not cbZoomSaved.Checked;
end;
procedure TMainForm.btnSaveOleClick(Sender: TObject);
begin
if not SaveDialog.Execute then exit;
AdvStringGrid1.SaveToXLS(SaveDialog.FileName);
end;
procedure TMainForm.btnSaveNativeClick(Sender: TObject);
begin
if not SaveDialog.Execute then exit;
ImportSettings;
DeleteFile(SaveDialog.FileName);
FlxAdvSg.XLSExport(SaveDialog.FileName, edSheetName.Text);
end;
procedure TMainForm.edDateTimeEventClick(Sender: TObject);
begin
edDateFormat.Enabled:=not edDateTimeEvent.Checked;
edTimeFormat.Enabled:=not edDateTimeEvent.Checked;
end;
procedure TMainForm.FlxAdvSgDateTimeFormat(Sender: TAdvStringGrid;
const GridCol, GridRow, XlsCol, XlsRow: Integer; const Value: WideString;
var DateFormat, TimeFormat: WideString);
var
wc: widechar;
w: widestring;
begin
if edDateTimeEvent.Checked then
begin
wc:=#$FDF2;
w:=wc;
DateFormat:='"'+w+'" yyyymmdd "event test' +w+'"';
TimeFormat:='hh:mm';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -