如何使用 Delphi 10(西雅图)在 Excel 中合并 2 个单元格

问题描述 投票:0回答:1

互联网上曾经有很多 Delphi 参考资料。我尝试用谷歌搜索,我从黛博拉·佩特 (Deborah Pate) 那里获得的 com 编程的首选现在给了我一个 404 页面未找到!哦不!

无论如何,我正在使用与 olevariants 的后期绑定。我有a列和b列。我想将 a 列和 b 列合并到一行上。然后我想在合并的 a-b 单元格中填充该文本并将其居中。最后,我想用天蓝色填充背景。

我的Delphi代码如下。我想了解我做错了什么。我在 a 列中得到文本和天蓝色,并且这些列未合并。 Colqty 应该是 a 列,colitemdescr 应该是 b 列。

var   ExcelObj          : OLEVariant;
      startcell, endcell: olevariant; 
begin
       startcell:= ExcelObj.ActiveSheet.Cells[Row, colQty];
       endcell:= ExcelObj.ActiveSheet.Cells[Row, colItemDescr];
       startcell.Merge(endcell);
       startcell.Value := 'this is an item description';
       startcell.HorizontalAlignment := xlCenter;;
       startcell.Font.Bold := true;
       startcell.Interior.Color := clSkyBlue;
end;

感谢您给我的任何帮助!我知道德尔福已经失宠,但我们身边仍然有一些人! :)希望有人能回复!

excel delphi
1个回答
0
投票

为了使合并工作,您需要设置需要合并的单元格范围。

在下面的代码中,我添加了一个新的 OLEVariant 变量,名为 MegredRange。我用它来获取开始和结束单元格的所需范围,然后将它们合并在一起。

var
  ExcelObj, StartCell, EndCell, MergedRange: OLEVariant;
begin application

  StartCell := ExcelObj.ActiveSheet.Cells[Row, ColQty];
  EndCell := ExcelObj.ActiveSheet.Cells[Row, ColItemDescr];
  MergedRange := ExcelObj.ActiveSheet.Range[StartCell, EndCell];
  MergedRange.Merge();
  MergedRange.Value := 'this is an item description';
  MergedRange.HorizontalAlignment := xlCenter;
  MergedRange.Font.Bold := true;
  MergedRange.Interior.Color := clSkyBlue;
end;
© www.soinside.com 2019 - 2024. All rights reserved.