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

📄 fuqexport4xlseditor.pas

📁 Advanced.Export.Component.v4.01.rar,delphi 第三方控件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
        rbXLSChartCategoryLabelCustom.Checked := TxlsChart(Item).CategoryLabelsType = rtCustom;
        edXLSChartCategoryLabelsCol1.Text := IntToStr(TxlsChart(Item).CategoryLabels.Col1);
        edXLSChartCategoryLabelsCol2.Text := IntToStr(TxlsChart(Item).CategoryLabels.Col2);
        edXLSChartCategoryLabelsRow1.Text := IntToStr(TxlsChart(Item).CategoryLabels.Row1);
        edXLSChartCategoryLabelsRow2.Text := IntToStr(TxlsChart(Item).CategoryLabels.Row2);
        TuneXLSChartPosition;
        TuneXLSChartCategoryLabel;
      end;
      itSeries: begin
        edXLSSeriesTitle.Text := TxlsChartSeries(Item).Title;
        rbXLSSeriesColumn.Checked := TxlsChartSeries(Item).DataRangeType = rtColumn;
        i := cbXLSSeriesColumn.Items.IndexOf(TxlsChartSeries(Item).DataColumn);
        cbXLSSeriesColumn.ItemIndex := i;
        rbXLSSeriesCustom.Checked := TxlsChartSeries(Item).DataRangeType = rtCustom;
        edXLSSeriesDataRangeCol1.Text := IntToStr(TxlsChartSeries(Item).DataRange.Col1);
        edXLSSeriesDataRangeCol2.Text := IntToStr(TxlsChartSeries(Item).DataRange.Col2);
        edXLSSeriesDataRangeRow1.Text := IntToStr(TxlsChartSeries(Item).DataRange.Row1);
        edXLSSeriesDataRangeRow2.Text := IntToStr(TxlsChartSeries(Item).DataRange.Row2);
        TuneXLSSeriesDataRange;
      end;
      itCell: begin
        edXLSCellCol.Text := IntToStr(TxlsCell(Item).Col);
        edXLSCellRow.Text := IntToStr(TxlsCell(Item).Row);
        cbXLSCellType.ItemIndex := Integer(TxlsCell(Item).CellType);
        edXLSCellValue.Text := VarToStr(TxlsCell(Item).Value);
        edXLSCellDateTimeFormat.Text := TxlsCell(Item).DateTimeFormat;
        edXLSCellNumericFormat.Text := TxlsCell(Item).NumericFormat;
      end;
      itMergedCells: begin
        edXLSMergedCellsFirstCol.Text := IntToStr(TxlsMergedCells(Item).FirstCol);
        edXLSMergedCellsFirstRow.Text := IntToStr(TxlsMergedCells(Item).FirstRow);
        edXLSMergedCellsLastCol.Text := IntToStr(TxlsMergedCells(Item).LastCol);
        edXLSMergedCellsLastRow.Text := IntToStr(TxlsMergedCells(Item).LastRow);
      end;
    end;
  end;
end;

function TfmQExport4XLSEditor.GetCurrFmtList: TListView;
begin
  Result := nil;
  case FCurrList of
    lstColumns: Result := lvFieldFormats;
    lstOptions: Result := lvOptions;
    lstStyles: Result := lvStyles;
  end;
end;

function TfmQExport4XLSEditor.GetCurrFmtItem: TxlsCustomItem;
begin
  Result := nil;
  case FCurrList of
    lstColumns:
      if Assigned(lvFieldFormats.ItemFocused) then
        Result := TxlsCustomItem(lvFieldFormats.ItemFocused.Data);
    lstOptions:
      if Assigned(lvOptions.ItemFocused) then
        Result := TxlsCustomItem(lvOptions.ItemFocused.Data);
    lstStyles:
      if Assigned(lvStyles.ItemFocused) then
        Result := TxlsCustomItem(lvStyles.ItemFocused.Data);
    lstExtensions:
      if Assigned(tvExtensions.Selected) then
        Result := TxlsCustomItem(tvExtensions.Selected.Data);
  end;
end;

function TfmQExport4XLSEditor.GetCurrFont: TxlsFont;
var
  Item: TxlsCustomItem;
begin
  Result := nil;

  Item := GetCurrFmtItem;
  if not Assigned(Item) then Exit;

  case Item.ItemType of
    itFormat,
    itFieldFormat: Result := (Item as TxlsFormat).Font;
    itNoteFormat: Result := (Item as TxlsNoteFormat).Font;
    itHyperlink: Result := (Item as TxlsHyperlink).Format.Font;
    itNote: Result := (Item as TxlsNote).Format.Font;
    itCell: Result := (Item as TxlsCell).Format.Font;
  end;
end;

function TfmQExport4XLSEditor.GetCurrAlignment: TxlsAlignment;
var
  Item: TxlsCustomItem;
begin
  Result := nil;

  Item := GetCurrFmtItem;
  if not Assigned(Item) then Exit;

  case Item.ItemType of
    itFormat,
    itFieldFormat: Result := (Item as TxlsFormat).Alignment;
    itNoteFormat: Result := (Item as TxlsNoteFormat).Alignment;
    itHyperlink: Result := (Item as TxlsHyperlink).Format.Alignment;
    itNote: Result := (Item as TxlsNote).Format.Alignment;
    itCell: Result := (Item as TxlsCell).Format.Alignment;
  end;
end;

function TfmQExport4XLSEditor.GetCurrBorders: TxlsBorders;
var
  Item: TxlsCustomItem;
begin
  Result := nil;

  Item := GetCurrFmtItem;
  if not Assigned(Item) then Exit;

  case Item.ItemType of
    itFormat,
    itFieldFormat: Result := (Item as TxlsFormat).Borders;
    itHyperlink: Result := (Item as TxlsHyperlink).Format.Borders;
    itCell: Result := (Item as TxlsCell).Format.Borders;
  end;
end;

function TfmQExport4XLSEditor.GetCurrFill: TxlsFill;
var
  Item: TxlsCustomItem;
begin
  Result := nil;

  Item := GetCurrFmtItem;
  if not Assigned(Item) then Exit;

  case Item.ItemType of
    itFormat,
    itFieldFormat: Result := (Item as TxlsFormat).Fill;
    itHyperlink: Result := (Item as TxlsHyperlink).Format.Fill;
    itCell: Result := (Item as TxlsCell).Format.Fill;
  end;
end;

procedure TfmQExport4XLSEditor.SetCurrDefault;
var
  Item: TxlsCustomItem;
begin
  Item := GetCurrFmtItem;
  if not Assigned(Item) then Exit;

  case Item.ItemType of
    itFormat,
    itFieldFormat: (Item as TxlsFormat).SetDefault;
    itNoteFormat: (Item as TxlsNoteFormat).SetDefault;
    itHyperlink: (Item as TxlsHyperlink).Format.SetDefault;
    itNote: (Item as TxlsNote).Format.SetDefault;
  end;
end;

procedure TfmQExport4XLSEditor.ShowColumnButtons;
begin
  tbtAddFieldFormat.Enabled := Assigned(lvSheets.Selected);
  tbtEditFieldFormat.Enabled := Assigned(lvSheets.Selected) and
                               (lvFieldFormats.Items.Count > 0) and
                               Assigned(lvFieldFormats.Selected);
  tbtDelFieldFormat.Enabled := Assigned(lvSheets.Selected) and
                               (lvFieldFormats.Items.Count > 0) and
                               Assigned(lvFieldFormats.Selected);
  tbtDownloadDataFormat.Enabled := Assigned(lvSheets.Selected) and
                                   (lvFieldFormats.Items.Count > 0) and
                                   Assigned(lvFieldFormats.Selected);
  tbtUploadDataFormat.Enabled := Assigned(lvSheets.Selected) and
                                 (lvFieldFormats.Items.Count > 0) and
                                 Assigned(lvFieldFormats.Selected);
end;

procedure TfmQExport4XLSEditor.ShowStyleButtons;
begin
  tbtStyleAdd.Enabled := Assigned(lvSheets.Selected);
  tbtStyleDel.Enabled := (lvStyles.Items.Count > 0) and
                         Assigned(lvStyles.Selected);
  tbtStyleUp.Enabled := (lvStyles.Items.Count > 0) and
                         Assigned(lvStyles.Selected) and
                         (lvStyles.Selected.Index > 0);
  tbtStyleDown.Enabled := (lvStyles.Items.Count > 0) and
                           Assigned(lvStyles.Selected) and
                           (lvStyles.Selected.Index < lvStyles.Items.Count - 1);
  rgStripType.Enabled := Assigned(lvSheets.Selected) and
                         (lvStyles.Items.Count > 0);
  if not rgStripType.Enabled then rgStripType.ItemIndex := 0;
end;

procedure TfmQExport4XLSEditor.LoadSheets;
var
  i: integer;
  Sheet: TxlsSheet;
  Cmp: TComponent;
begin
  edFileName.Text := FExportXLS.FileName;
  chShowFile.Checked := FExportXLS.ShowFile;
  chPrintFile.Checked := FExportXLS.PrintFile;

  tvExtensions.Items.BeginUpdate;
  try
    tvExtensions.Items.Clear;
    FHyperlinkNode := tvExtensions.Items.Add(nil,
    {$IFDEF WIN32}QExportLoadStr(QED_XLS_Hyperlinks){$ENDIF}
    {$IFDEF LINUX}QED_XLS_Hyperlinks{$ENDIF});
    with FHyperlinkNode do begin
      ImageIndex := xlsHyperlink;
      SelectedIndex := xlsHyperlink;
    end;
    FNoteNode := tvExtensions.Items.Add(nil, {$IFDEF WIN32}QExportLoadStr(QED_XLS_Notes){$ENDIF}
                                             {$IFDEF LINUX}QED_XLS_Notes{$ENDIF});
    with FNoteNode do begin
      ImageIndex := xlsNote;
      SelectedIndex := xlsNote;
    end;
    FChartNode := tvExtensions.Items.Add(nil, {$IFDEF WIN32}QExportLoadStr(QED_XLS_Charts){$ENDIF}
                                              {$IFDEF LINUX}QED_XLS_Charts{$ENDIF});
    with FChartNode do begin
      ImageIndex := xlsChart;
      SelectedIndex := xlsChart;
    end;
    FCellNode := tvExtensions.Items.Add(nil, {$IFDEF WIN32}QExportLoadStr(QED_XLS_Cells){$ENDIF}
                                             {$IFDEF LINUX}QED_XLS_Cells{$ENDIF});
    with FCellNode do begin
      ImageIndex := xlsCell;
      SelectedIndex := xlsCell;
    end;
    FMergedCellNode := tvExtensions.Items.Add(nil, {$IFDEF WIN32}QExportLoadStr(QED_XLS_MergedCells){$ENDIF}
                                                   {$IFDEF LINUX}QED_XLS_MergedCells{$ENDIF});
    with FMergedCellNode do begin
      ImageIndex := xlsMergedCell;
      SelectedIndex := xlsMergedCell;
    end;
  finally
    tvExtensions.Items.EndUpdate;
  end;
  FHyperlinkNode.Focused := true;
  FHyperlinkNode.Selected := true;

  lvSheets.Items.BeginUpdate;
  FLoading := true;
  try
    lvSheets.Items.Clear;
    for i := 0 to FExportXLS.Sheets.Count - 1 do begin
      Cmp := QExportSource(FExportXLS.Sheets[i].ExportSource,
          FExportXLS.Sheets[i].DataSet, FExportXLS.Sheets[i].CustomSource,
          FExportXLS.Sheets[i].DBGrid, FExportXLS.Sheets[i].ListView,
          FExportXLS.Sheets[i].StringGrid);

      if not Assigned(Cmp) and (FExportSourceList.Count > 0) and
         (Application.MessageBox(PChar(Format({$IFDEF WIN32}QExportLoadStr(QEE_XLS_ExportSourceConfirm){$ENDIF}
                                              {$IFDEF LINUX}QEE_XLS_ExportSourceConfirm{$ENDIF},
            [FExportXLS.Sheets[i].Title])), PChar({$IFDEF WIN32}QExportLoadStr(QEE_XLS_Confirm){$ENDIF}
                                                  {$IFDEF LINUX}QEE_XLS_Confirm{$ENDIF}),
            MB_ICONINFORMATION + MB_YESNO + MB_DEFBUTTON1) = ID_YES) then
        Cmp := RunExportSourceList(FExportSourceList);

      with lvSheets.Items.Add do begin
        Sheet := TxlsSheet.Create(nil);
        Sheet.Assign(FExportXLS.Sheets[i]);

        if Assigned(Cmp) then begin
          SetSheetExportSource(FExportXLS.Sheets[i], Cmp);
          SubItems.Add(Cmp.ClassName);
        end
        else SubItems.Add({$IFDEF WIN32}QExportLoadStr(QEE_XLS_ExportSourceUndefined){$ENDIF}
                          {$IFDEF LINUX}QEE_XLS_ExportSourceUndefined{$ENDIF});

        Caption := Sheet.Title;
        Data := Sheet;
      end;
    end;
  finally
    FLoading := false;
    lvSheets.Items.EndUpdate;
  end;
  if lvSheets.Items.Count > 0 then begin
    lvSheets.Items[0].Focused := true;
    lvSheets.Items[0].Selected := true;
  end;
  TuneSheetButtons;
  ShowColumnButtons;
  ShowStyleButtons;
end;

procedure TfmQExport4XLSEditor.SaveSheets;
var
  i: integer;
  Sheet: TxlsSheet;
begin
  FExportXLS.FileName := edFileName.Text;
  FExportXLS.ShowFile := chShowFile.Checked;
  FExportXLS.PrintFile := chPrintFile.Checked;

  FExportXLS.Sheets.Clear;
  for i := 0 to lvSheets.Items.Count - 1 do begin
    Sheet := TxlsSheet(lvSheets.Items[i].Data);
    FExportXLS.Sheets.Add.Assign(Sheet);
  end;
end;

procedure TfmQExport4XLSEditor.ClearLists;
var
  i: integer;
  WasLoading: boolean;
begin
  WasLoading := FLoading;
  FLoading := true;
  try
    // Field Formats
    lvFieldFormats.Items.BeginUpdate;
    try
      lvFieldFormats.Items.Clear;
    finally
      lvFieldFormats.Items.EndUpdate;
    end;
    // Styles
    lvStyles.Items.BeginUpdate;
    try
      lvStyles.Items.Clear;
    finally
      lvStyles.Items.EndUpdate;
    end;
    // Options
    lvOptions.Items.BeginUpdate;
    try
      for i := 0 to 6 do begin
        lvOptions.Items[i].Data := nil;
        lvOptions.Items[i].ImageIndex := 2;
      end;
    finally
      lvOptions.Items.EndUpdate;
    end;
    tvExte

⌨️ 快捷键说明

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