互联网上曾经有很多 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;
感谢您给我的任何帮助!我知道德尔福已经失宠,但我们身边仍然有一些人! :)希望有人能回复!
为了使合并工作,您需要设置需要合并的单元格范围。
在下面的代码中,我添加了一个新的 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;