gpt4 book ai didi

excel - Delphi - 设置 Excel 单元格背景颜色渐变

转载 作者:行者123 更新时间:2023-12-03 19:48:59 24 4
gpt4 key购买 nike

Delphi Seattle,Excel 2013。我需要将单元格的背景设置为渐变。如果它是单一颜色,我可以设置背景颜色,但我无法获得正确的渐变语法。部分挑战在于单元格的梯度是 IDispatch。以下代码将设置单一背景颜色。

    procedure TForm1.GradientTestClick(Sender: TObject);
var
oExcel : ExcelApplication;
RawDataSheet :_Worksheet;
ThisCell : ExcelRange;
begin
oExcel := CreateOleObject('Excel.Application') as ExcelApplication;
oExcel.Visible[LOCALE_USER_DEFAULT] := True;

// Add a New Workbook, with a single sheet
oExcel.Workbooks.Add(EmptyParam, LOCALE_USER_DEFAULT);
// Get the handle to the active Sheet, and insert some dummy data
RawDataSheet := oExcel.ActiveSheet as _Worksheet;
ThisCell := RawDataSheet.Range['A1', EmptyParam];
ThisCell.Value2 := 10;


// To set ONE Color
ThisCell.Interior.Pattern := xlSolid;
ThisCell.Interior.ColorIndex := 3;

// To Set Gradient...


end;

当我记录一个 EXCEL 宏设置我想要的渐变(线性,2 色,绿色到黄色)时,宏是
Sub Macro1()
'
' Macro1 Macro
'

'
With Selection.Interior
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With Selection.Interior.Gradient.ColorStops.Add(0)
.Color = 5296274
.TintAndShade = 0
End With
With Selection.Interior.Gradient.ColorStops.Add(1)
.Color = 65535
.TintAndShade = 0
End With
End Sub

我应该能够在德尔福做的是......
  ThisCell.Interior.Pattern := xlPatternLinearGradient;
ThisCell.Interior.Gradient.Degree := 0;
ThisCell.Interior.Gradient.ColorStops.Clear;
ThisCell.Interior.Gradient.ColorStops.Add[0].Color := 5296274;
ThisCell.Interior.Gradient.ColorStops.Add[1].Color := 65535;

我的挑战是 ThisCell.Interior.Gradient 是一个 IDispatch。如何设置其他“子属性”,例如 Degree 和 Colorstops?

谢谢

最佳答案

使用后期绑定(bind)访问 IDispatch 接口(interface)上的方法/属性。

  ...
Gradient: OleVariant;
begin
....

// To Set Gradient...

ThisCell.Interior.Pattern := xlPatternLinearGradient;
Gradient := ThisCell.Interior.Gradient;
Gradient.Degree := 45;
Gradient.ColorStops.Clear;
Gradient.ColorStops.Add(0).Color := 5296274;
Gradient.ColorStops.Add(1).Color := 65535;

关于excel - Delphi - 设置 Excel 单元格背景颜色渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41191634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com