我试图弄清楚如何使用Delphi将图像插入Excel页面标题。我已经看到如何将其用于普通单元,而不是进入页面标题。有人可以帮忙吗?谢谢。
使用Excel Automation对象PageSetup
时,可以管理Excel Sheet Page页板和页脚的多个属性。
https://msdn.microsoft.com/en-us/library/office/ff196103.aspx
在此特定问题中感兴趣的属性可能是以下对之一:
PageSetup.LeftHeader
PageSetup.LeftHeaderPicture
PageSetup.CenterHeader
PageSetup.CenterHeaderPicture
PageSetup.RightHeader
PageSetup.RightHeaderPicture
例如,您可以使用LeftHeader
属性字符串显示简单的文本或特殊ITENS,例如图片,在这种情况下,您必须将代码'g'分配给此属性才能显示图像。您可以使用LeftHeaderPicture.FileName
属性指定图像文件。
顺便说一句,您还可以使用其他特殊的格式代码,例如当前日期'& d''& p'for page number,'& n'对于页面总数等等。
https://msdn.microsoft.com/en-us/library/bb225426(v = Office.12).aspx
当您需要显示页面号,总页面等或要在所有文档页面中显示徽标或文档标题时,管理Excel表格和页脚很有用。处理普通的板单元不会带来相同的结果。
简单的delphi示例:
var Excel: Variant;
Sheet: OleVariant;
filename: String;
...
Excel:=CreateOleObject('Excel.application');
Excel.Visible:=False;
Excel.WorkBooks.Add(-4167);
Sheet:=Excel.ActiveSheet;
Sheet.PageSetup.RightHeader:='my document title';
Sheet.PageSetup.LeftFooter:='my footer message';
Sheet.PageSetup.CenterFooter:='&D';
Sheet.PageSetup.RightFooter:='&P/&N';
filename:=ExtractFilePath(Application.ExeName)+'logo.bmp';
if FileExists(filename) then begin
Sheet.PageSetup.LeftHeader:='&G';
Sheet.PageSetup.LeftHeaderPicture.FileName:=filename;
end;
Sheet.Cells[1,1].Value:='example of page header and page footer handling of an excel sheet...';
Excel.Visible:=True;