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

📄 mainexcelexport.pas

📁 excel导出功能
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  if DatabaseDBDemos.Connected then
    DatabaseDBDemos.Close;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetEOF(Sender: TObject; var BlnEOF: Boolean);
begin
  BlnEOF := QuerySortShipVia.Eof;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldCount(Sender: TObject;
  var IntFieldCount: Integer);
begin
  IntFieldCount := QuerySortShipVia.FieldCount;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldDataSize(Sender: TObject;
  const FieldIndex: Integer; var IntFieldDataSize: Integer);
begin
  IntFieldDataSize := QuerySortShipVia.Fields[FieldIndex].Size;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldDataType(Sender: TObject;
  const FieldIndex: Integer; var FieldDataType: TFieldType);
begin
  FieldDataType := QuerySortShipVia.Fields[FieldIndex].DataType;

  if SameText(QuerySortShipVia.Fields[FieldIndex].FieldName,'NewOrderNo') then
    FieldDataType := ftString;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldDisplayName(
  Sender: TObject; const FieldIndex: Integer;
  var StrFieldDisplayName: String);
begin
  StrFieldDisplayName := '* '+QuerySortShipVia.Fields[FieldIndex].FieldName+' *';
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldName(Sender: TObject;
  const FieldIndex: Integer; var StrFieldName: String);
begin
  StrFieldName := QuerySortShipVia.Fields[FieldIndex].FieldName;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldValue(Sender: TObject;
  const FieldIndex: Integer; var VarValue: Variant);
begin
  VarValue := QuerySortShipVia.Fields[FieldIndex].Value;

  if SameText(QuerySortShipVia.Fields[FieldIndex].FieldName,'NewOrderNo') then
    VarValue := '00'+QuerySortShipVia.Fields[FieldIndex].AsString;
end;

//------------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GotoFirstRecord(Sender: TObject);
begin
  QuerySortShipVia.First;
end;

//------------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GotoNextRecord(Sender: TObject);
begin
  QuerySortShipVia.Next;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldVisible(Sender: TObject;
  const FieldIndex: Integer; var BlnFieldVisible: Boolean);
begin
  BlnFieldVisible := True;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2ExportRecords(Sender: TObject;
  IntRecordNumber: Integer);
begin
  StatusBar.Panels[0].Text := 'Records : '+IntToStr(IntRecordNumber);
end;

//------------------------------------------------------------------------------
procedure TFormExcelExport.scExcelExport2GetFieldCellStyleEvent(Sender: TObject;
  const IntFieldIndex: Integer; var ColorBackground: TColor; FontCell: TxlFont);
begin
  if QuerySortShipVia.FieldByName('OrderNo').Value < 1010 then
    ColorBackground := clYellow;

  if IntFieldIndex = 4 then
  begin
    if QuerySortShipVia.FieldByName('CustNo').Value > 2000 then
    begin
      FontCell.Color := clRed;
      FontCell.Size  := 14;
    end;
  end;
end;

//------------------------------------------------------------------------------
procedure TFormExcelExport.TableAnimalsCalcFields(DataSet: TDataSet);
var
  StrSize : String;
  IntLength : Integer;
begin
  Dataset.FieldByName('WeightSize').AsFloat :=
    Dataset.FieldByName('Weight').AsFloat * Dataset.FieldByName('Size').AsFloat;
  Dataset.FieldByName('AreaText').AsString :=
    LowerCase(Dataset.FieldByName('Area').AsString)+
    '-'+
    LowerCase(Dataset.FieldByName('Area').AsString);

  Dataset.FieldByName('Weight2').AsFloat := Dataset.FieldByName('Weight').AsFloat * 12.34;
  Dataset.FieldByName('Weight3').AsFloat := Dataset.FieldByName('Weight').AsFloat * 12.34;
  Dataset.FieldByName('Weight4').AsFloat := Dataset.FieldByName('Weight').AsFloat * 12.34;
  Dataset.FieldByName('Weight5').AsCurrency := Dataset.FieldByName('Weight').AsFloat * 12.34;
  Dataset.FieldByName('Weight6').AsCurrency := Dataset.FieldByName('Weight').AsFloat * 12.34;
  Dataset.FieldByName('Weight7').AsFloat := Dataset.FieldByName('Weight').AsFloat * 1234.56;

  {$IFDEF DELPHI5}
  Dataset.FieldByName('Time1').AsDateTime :=
    EncodeDate(2004,01,20)
    +EncodeTime(10,11,12,0)
    +Dataset.FieldByName('Weight').AsFloat*1.1;
  {$ELSE}
  Dataset.FieldByName('Time1').AsDateTime := EncodeDateTime(2004,01,20,10,11,12,0)
    +Dataset.FieldByName('Weight').AsFloat*1.1;
  {$ENDIF}

  Dataset.FieldByName('Time2').AsDateTime := Dataset.FieldByName('Time1').AsDateTime;
  Dataset.FieldByName('Time3').AsDateTime := Dataset.FieldByName('Time1').AsDateTime;
  Dataset.FieldByName('Time4').AsDateTime := Dataset.FieldByName('Time1').AsDateTime;
  Dataset.FieldByName('Time5').AsDateTime := Dataset.FieldByName('Time1').AsDateTime;
  Dataset.FieldByName('Time6').AsDateTime := Dataset.FieldByName('Time1').AsDateTime;

  StrSize := Dataset.FieldByName('Size').AsString;
  IntLength := Length(StrSize);
  StrSize := StringOfChar('0',10-IntLength)+StrSize;
  Dataset.FieldByName('SizeText').AsString := StrSize;
end;

//------------------------------------------------------------------------------
procedure TFormExcelExport.TableBiolifeNotesGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  Text := UpperCase(Copy(Sender.AsString,1,50));
end;

//------------------------------------------------------------------------------
procedure TFormExcelExport.LabelWebsiteClick(Sender: TObject);
begin
  ShellExecute(Handle,'open','http://www.scip.be',nil,nil,SW_NORMAL);
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute1Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.ExcelVisible:=True;
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.Dataset:=TableOrders;
    scExcelExport1.WorksheetName:='TscExcelExport DEMO 1';
    Duration := Now();
    scExcelExport1.ExportDataset;

    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);
  finally
    scExcelExport1.Disconnect;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute2Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.ExcelVisible:=True;
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.Dataset:=TableAnimals;
    scExcelExport1.WorksheetName:='TscExcelExport DEMO 2';
    Duration := Now();
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);
  finally
    scExcelExport1.Disconnect;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute3Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.ExcelVisible:=True;
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.Dataset:=TableBiolife;
    scExcelExport1.WorksheetName:='TscExcelExport DEMO 3';
    scExcelExport1.HeaderText.Text:= 'DEMO 3 - Animals - Memo';
    scExcelExport1.StyleColumnWidth := cwAutoFit;
    scExcelExport1.AutoFilter := True;
    Duration := Now();
    TableBiolifeNotes.OnGetText := nil;
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);
  finally
    scExcelExport1.Disconnect;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute4Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.ExcelVisible:=True;
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.Dataset:=TableBiolife;
    scExcelExport1.WorksheetName:='TscExcelExport DEMO 4';
    Duration := Now();
    TableBiolifeNotes.OnGetText := TableBiolifeNotesGetText;
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);

    TableOrdersShipToPhone.Index := 10;
  finally
    scExcelExport1.Disconnect;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute5Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.WorksheetName := 'TscExcelExport DEMO 5';
    scExcelExport1.Dataset:=TableOrders;

    scExcelExport1.SummarySelection := ssValues;
    scExcelExport1.SummaryCalculation := scSUM;
    scExcelExport1.ExcelVisible:=True;
    Duration := Now();
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);
  finally
    scExcelExport1.Disconnect;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute6Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.WorksheetName := 'TscExcelExport DEMO 6';
    scExcelExport1.Dataset:=TableOrders;
    scExcelExport1.StyleColumnWidth:=cwOwnerWidth;
    scExcelExport1.ColumnWidth := 20;

    scExcelExport1.HeaderText.Text:= 'Header';
    scExcelExport1.HeaderText.Add('Header - Line2');
    scExcelExport1.HeaderText.Add('Header - Line3');
    scExcelExport1.FooterText.Add('Footer - Line1');
    scExcelExport1.FooterText.Add('Footer - Line2');
    scExcelExport1.BeginRowHeader := 5;
    scExcelExport1.BorderHeader.BackColor := clGreen;
    scExcelExport1.FontHeader.Size := 14;
    scExcelExport1.FontHeader.Color := clRed;
    scExcelExport1.MergeHeaderCells := False;
    scExcelExport1.MergeFooterCells := False;

    scExcelExport1.FontData.Size := 12;

    scExcelExport1.BeginRowTitles := 5;
    scExcelExport1.FontTitles := TxlFont(PanelTitle6.Font);
    scExcelExport1.FontTitles.Orientation := 45;
    scExcelExport1.BorderTitles.BackColor := clBlue;
    scExcelExport1.BorderTitles.BorderColor := clRed;
    scExcelExport1.BorderTitles.LineStyle := blDouble;
    scExcelExport1.BorderTitles.Weight := bwThick;

    scExcelExport1.BeginRowData := 8;
    scExcelExport1.SummarySelection := ssValues;
    scExcelExport1.SummaryCalculation := scMAX;
    scExcelExport1.BorderSummary.BackColor := clYellow;
    scExcelExport1.BorderSummary.BorderColor := clRed;
    scExcelExport1.BorderSummary.LineStyle := blLine;
    scExcelExport1.BorderSummary.Weight := bwThick;

    scExcelExport1.BorderData.LineStyle := blDouble;

    scExcelExport1.ExcelVisible:=True;
    Duration := Now();
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);

    MessageDlg(
      'First empty row in column A : ' + IntToStr(scExcelExport1.FindFirstEmptyRow('A')) + #13+#10 +
      'First empty row after row 5 in column A : ' + IntToStr(scExcelExport1.FindFirstEmptyRow('A',5)) + #13+#10 +
      'First empty row after row 10 in column A : ' + IntToStr(scExcelExport1.FindFirstEmptyRow('A',10)) + #13+#10 +
      'First empty row after row 10 in column C : ' + IntToStr(scExcelExport1.FindFirstEmptyRow('C',10))
      , mtInformation, [mbOK], 0);
  finally
    scExcelExport1.Disconnect;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute7Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.ExcelVisible:=True;
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.Dataset:=TableOrders;
    scExcelExport1.WorksheetName:='TscExcelExport DEMO 7';
    scExcelExport1.FontData.Color := clBlue;
    scExcelExport1.OnGetCellStyleEvent := ChangeCellColors;
    Duration := Now();
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);
  finally
    scExcelExport1.Disconnect;
    scExcelExport1.OnGetCellStyleEvent := nil;
  end;
end;

//-----------------------------------------------------------------------------
procedure TFormExcelExport.BitBtnExecute8Click(Sender: TObject);
var
  Duration : TDateTime;
begin
  try
    scExcelExport1.ExcelVisible:=True;
    scExcelExport1.LoadDefaultProperties;
    scExcelExport1.Dataset:=TableOrders;
    scExcelExport1.WorksheetName:='TscExcelExport DEMO 8';
    scExcelExport1.FontData.Color := clBlue;
    scExcelExport1.VisibleFieldsOnly := True;
    TableOrdersShipToContact.Visible := False;
    TableOrdersShipToAddr1.Visible := False;
    TableOrdersShipToAddr2.Visible := False;
    TableOrdersShipToCity.Visible := False;
    TableOrdersShipToState.Visible := False;
    TableOrdersShipToZip.Visible := False;
    TableOrdersShipToCountry.Visible := False;
    TableOrdersShipToPhone.Visible := False;
    TableOrdersShipVIA.Visible := False;
    TableOrdersPO.Visible := False;
    TableOrdersTerms.Visible := False;
    Duration := Now();
    scExcelExport1.ExportDataset;
    StatusBar.Panels[1].Text := 'Duration : '+TimeToStr(Now() - Duration);
  finally
    TableOrdersShipToContact.Visible := True;
    TableOrdersShipToAddr1.Visible := True;
    TableOrdersShipToAddr2.Visible := True;
    TableOrdersShipToCity.Visible := True;
    TableOrdersShipToState.Visible := True;

⌨️ 快捷键说明

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