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

📄 main.pas

📁 可以将 TDBGrid/TDataSet数据导入到Excel
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, SMEEngine, SMEEngSG, ExportDS, SME2Cell, SME2XML,
  ExtCtrls;

type
  TfrmMain = class(TForm)
    StringGrid1: TStringGrid;
    btnExport: TButton;
    btnAbout: TButton;
    btnClose: TButton;
    SMEStringGridDataEngine1: TSMEStringGridDataEngine;
    SMExportToXML1: TSMExportToXML;
    RadioGroup1: TRadioGroup;
    CheckBox1: TCheckBox;
    procedure btnCloseClick(Sender: TObject);
    procedure btnAboutClick(Sender: TObject);
    procedure btnExportClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

procedure TfrmMain.btnCloseClick(Sender: TObject);
begin
  Close
end;

procedure TfrmMain.btnAboutClick(Sender: TObject);
begin
  SMExportToXML1.AboutSME
end;

procedure TfrmMain.btnExportClick(Sender: TObject);
var
  i: Integer;
begin
  {export from string grid}
  SMExportToXML1.ColumnSource := csDataEngine;

  {XML formatting}
  SMExportToXML1.Format := TSMEXMLFormat(RadioGroup1.ItemIndex);
  SMExportToXML1.GenerateXSL := CheckBox1.Checked;

  SMExportToXML1.FileName := ExtractFilePath(Application.ExeName) + 'smexport.xml';

  {add header and footer}
  SMExportToXML1.Header.Clear;
  SMExportToXML1.Header.Add(Caption);
  SMExportToXML1.Header.Add('');

  SMExportToXML1.Footer.Clear;
  SMExportToXML1.Footer.Add('');
  SMExportToXML1.Footer.Add('Generated by SMExport suite: http://www.scalabium.com');

  {fill a column list that must be exported}
  SMExportToXML1.Columns.Clear;
  for i := 0 to StringGrid1.ColCount-1 do
    with SMExportToXML1.Columns.Add do
    begin
      FieldName := IntToStr(i);
      Title.Caption := 'Column' + IntToStr(i);
      Visible := True;
      Width := StringGrid1.ColWidths[i] div 4
    end;

  {start}
  SMExportToXML1.Options := SMExportToXML1.Options + [soUseFieldNameAsCaption];
  SMExportToXML1.Execute;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
  i, j: Integer;
begin
  {fill random values for StringGrid}
  with StringGrid1 do
  begin
    ColCount := Random(100)+5;
    RowCount := Random(1000)+7;
    FixedCols := 1;
    FixedRows := 1;
    for j := 0 to ColCount-1 do
    begin
      ColWidths[j] := Random(150);
      for i := 0 to RowCount-1 do
        Cells[j, i] := 'Random' + IntToStr(Random(10000));
    end;
  end;
end;

end.

⌨️ 快捷键说明

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