📄 tmsxlsadapter.pas
字号:
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then begin; Result:=0;exit;end;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].GetColWidth(aCol-1);
end;
function TXLSFile.GetColumnWidthHiddenIsZero(aCol: integer): integer;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then begin; Result:=0;exit;end;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].GetColWidth(aCol-1, true);
end;
function TXLSFile.GetRowHeight(aRow: integer): integer;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then begin; Result:=0;exit;end;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].GetRowHeight(aRow-1);
end;
function TXLSFile.GetRowHeightHiddenIsZero(aRow: integer): integer;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then begin; Result:=0;exit;end;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].GetRowHeight(aRow-1, true);
end;
procedure TXLSFile.SetColumnWidth(aCol: integer; const Value: integer);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetColWidth(aCol-1, Value);
RestoreObjectSizes();
end;
procedure TXLSFile.SetRowHeight(aRow: integer; const Value: integer);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetRowHeight(aRow-1, Value);
RestoreObjectSizes();
end;
function TXLSFile.GetColumnHidden(const aCol: integer): boolean;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then begin; Result:=false;exit;end;
if (aCol<1)or (aCol>Max_Columns+1) then begin; result:=false;exit;end;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].GetColHidden(aCol-1);
end;
function TXLSFile.GetRowHidden(const aRow: integer): boolean;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then begin; Result:=false;exit;end;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].GetRowHidden(aRow-1);
end;
procedure TXLSFile.SetColumnHidden(const aCol: integer; const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
if (aCol<1)or (aCol>Max_Columns+1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetColHidden(aCol-1, Value);
RestoreObjectSizes();
end;
procedure TXLSFile.SetRowHidden(const aRow: integer; const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetRowHidden(aRow-1, Value);
RestoreObjectSizes();
end;
function TXLSFile.GetFirstColumn: integer;
begin
Result:=FirstColumn+1;
end;
function TXLSFile.GetCellValueX(aRow, aCol: integer): TXlsCellValue;
begin
Result:= GetCellDataX(aRow, aCol-FirstColumn-1);
end;
procedure TXLSFile.SetCellValueX(aRow, aCol: integer;
const Value: TXlsCellValue);
begin
AssignCellDataX(aRow, aCol-FirstColumn-1, Value);
end;
function TXLSFile.GetAutoFilterRange: TXlsCellRange;
begin
Result.Left := -1; Result.Top := -1; Result.Bottom := -1; Result.Right := -1;;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result := FWorkbook.WorkSheets[FActiveSheet-1].GetAutoFilterRange(FActiveSheet - 1);
inc(Result.Left);
inc(Result.Top);
inc(Result.Right);
inc(Result.Bottom);
end;
function TXLSFile.GetAutoRowHeight(Row: integer): boolean;
begin
Result:=true;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].Cells.RowList.IsAutoRowHeight(Row-1);
end;
procedure TXLSFile.SetAutoFilter(const row, col1, col2: Int32);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetAutoFilter(FActiveSheet - 1, row - 1, col1 - 1, col2 - 1);
end;
procedure TXLSFile.SetAutoRowHeight(Row: integer; const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].Cells.RowList.AutoRowHeight(Row-1, Value);
end;
function TXLSFile.GetColorPalette(Index: TColorPaletteRange): LongWord;
begin
Result:=FWorkbook.Globals.ColorPalette[Index-1];
end;
function TXlsFile.GetUsedPaletteColors: BooleanArray;
begin
Result := FWorkbook.Globals.XF.GetUsedColors(56 + 1, FWorkbook.Globals.Fonts);
end;
procedure TXLSFile.SetColorPalette(Index: TColorPaletteRange;
const Value: LongWord);
begin
FWorkbook.Globals.ColorPalette[Index-1]:=Value;
end;
function TXLSFile.GetColumnFormat(aColumn: integer): integer;
begin
Result:=-1;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].GetColFormat(aColumn-1);
end;
function TXLSFile.GetRowFormat(aRow: integer): integer;
begin
Result:=0;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].GetRowFormat(aRow-1);
end;
procedure TXLSFile.SetColumnFormat(aColumn: integer; const Value: integer);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetColFormat(aColumn-1, Value);
end;
procedure TXLSFile.SetRowFormat(aRow: integer; const Value: integer);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].SetRowFormat(aRow-1, Value);
end;
function TXLSFile.FormatListCount: integer;
begin
Result:=FWorkbook.Globals.XF.Count;
end;
function TXLSFile.GetFormatList(index: integer): TFlxFormat;
begin
if (Index<0) or (Index>=FWorkbook.Globals.XF.Count) then Index:=0;
Result:=FWorkbook.Globals.XF[index].FlxFormat(FWorkbook.Globals.Fonts, FWorkbook.Globals.Formats);
end;
procedure TXLSFile.SetFormatList(index: integer; Value: TFlxFormat);
begin
if (Index<0) or (Index>=FWorkbook.Globals.XF.Count) then Index:=0;
FWorkbook.Globals.XF[Index]:=TXFRecord.CreateFromFormat(Value, FWorkbook.Globals.Fonts, FWorkbook.Globals.Formats);;
end;
function TXLSFile.AddFont(const Fmt: TFlxFont): integer;
begin
Result:=FWorkbook.Globals.Fonts.AddFont(Fmt);
end;
function TXLSFile.AddFormat(const Fmt: TFlxFormat): integer;
var
XF: TXFRecord;
begin
XF:= TXFRecord.CreateFromFormat(Fmt, FWorkbook.Globals.Fonts, FWorkbook.Globals.Formats);
try
if FWorkbook.Globals.XF.FindFormat(XF, Result) then
begin
FreeAndNil(XF);
exit;
end;
Result:=FWorkbook.Globals.XF.Add(XF);
except
FreeAndNil(XF);
raise;
end; //Except
end;
function TXLSFile.ColByIndex(const Row, ColIndex: integer): integer;
begin
Result:=0;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
if IsEmptyRow(Row) then exit;
if (ColIndex<=0) or (ColIndex>FWorkbook.WorkSheets[FActiveSheet-1].Cells.CellList[Row-1].Count) then exit;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].Cells.CellList[Row-1][ColIndex-1].Column+1;
end;
function TXLSFile.ColIndexCount(const Row: integer): integer;
begin
Result:=0;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
if IsEmptyRow(Row) then exit;
Result:= FWorkbook.WorkSheets[FActiveSheet-1].Cells.CellList[Row-1].Count;
end;
function TXLSFile.ColIndex(const Row, Col: integer): integer;
begin
Result:=0;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
if IsEmptyRow(Row) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].Cells.CellList[Row-1].Find(Col, Result);
inc(Result);
end;
function TXLSFile.GetDefaultColWidth: integer;
begin
Result:=$A;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].DefColWidth;
end;
function TXLSFile.GetDefaultRowHeight: integer;
begin
Result:=$FF;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].DefRowHeight;
end;
function TXLSFile.GetShowGridLines: boolean;
begin
Result:=true;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].ShowGridLines;
end;
procedure TXLSFile.SetShowGridLines(const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].ShowGridLines:=value;
end;
function TXLSFile.GetShowGridHeaders: boolean;
begin
Result:=true;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].ShowGridHeaders;
end;
procedure TXLSFile.SetShowGridHeaders(const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].ShowGridHeaders:=value;
end;
function TXLSFile.GetPrintGridLines: boolean;
begin
Result:=true;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].PrintGridLines;
end;
function TXLSFile.GetPrintHCentered: boolean;
begin
Result:=false;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].PrintHCentered;
end;
procedure TXLSFile.SetPrintGridLines(const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].PrintGridLines:=value;
end;
procedure TXLSFile.SetPrintHCentered(const Value: boolean);
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
FWorkbook.WorkSheets[FActiveSheet-1].PrintHCentered := value;
end;
function TXLSFile.GetCellMergedBounds(aRow, aCol: integer): TXlsCellRange;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].CellMergedBounds(aRow-1, aCol-1);
inc(Result.Left);
inc(Result.Top);
inc(Result.Right);
inc(Result.Bottom);
end;
function TXLSFile.GetCellMergedList(index: integer): TXlsCellRange;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].CellMergedList(index);
inc(Result.Left);
inc(Result.Top);
inc(Result.Right);
inc(Result.Bottom);
end;
function TXLSFile.CellMergedListCount: integer;
begin
Result:=0;
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
Result:=FWorkbook.WorkSheets[FActiveSheet-1].CellMergedListCount;
end;
procedure TXLSFile.CopyToClipboardFormat(const Range: TXlsCellRange; out textString: string; const xlsStream: TStream);
begin
end;
{$IFDEF FLX_WINDOWSCLIPBOARD}
procedure TXLSFile.CopyToClipboard(const Range: TXlsCellRange);
begin
end;
{$ELSE}
procedure TXLSFile.CopyToClipboard(const Range: TXlsCellRange);
var
Text: String;
AsText: TStringStream;
AsBiff8: TMemoryStream;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
AsBiff8 := TMemoryStream.Create;
try
CopyToClipboardFormat(Range, Text, AsBiff8);
AsBiff8.Position := 0;
AsText := TStringStream.Create(Text);
try
ClipBoard.SetFormat(RegisterClipboardFormat('Biff8'), AsBiff8);
ClipBoard.AddFormat(RegisterClipboardFormat('text/plain'), AsText)
finally
FreeAndNil(AsText);
end;
finally
FreeAndNil(AsBiff8);
end;
end;
{$ENDIF}
procedure TXLSFile.CopyToClipboard;
var
Range: TXlsCellRange;
begin
Range.Left:=1;
Range.Top:=1;
Range.Right:= MaxCol;
Range.Bottom:= MaxRow;
CopyToClipboard(Range);
end;
procedure TXlsFile.PasteFromXlsClipboardFormat(const Row, Col: integer; const Stream: TStream);
var
TempWorkbook: TXlsFile;
r,c: integer;
Value: TXlsCellValue;
XF: TXFRecord;
d: TDimensionsRec;
RTFRuns: TRTFRunList;
fnt: TFlxFont;
i, Index: integer;
begin
if not FWorkbook.IsWorkSheet(FActiveSheet-1) then exit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -