📄 fuqexport4xlseditor.pas
字号:
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 + -