Delphi XE3 Excel不像Delphi XE那样工作
我刚安装了Delphi XE3。 以前的版本是XE。 我的程序生成Excel文件(我正在使用Office 2013)。 我导入了Exceltypes库。 当我使用Delphi XE,那么这个代码正在工作。 当我使用Delphi XE3时,我得到了一个错误消息,像这样:'HorizontalAlignment属性不能设置'在XE3中更改什么?
这里是代码:
VAR Myworkbook, range, excelapp : olevariant; Begin ExcelApp:=CreateOleObject('Excel.Application'); ExcelApp.Visible:=true; MyWorkbook:=ExcelApp.Workbooks.Add; MyWorkbook.Activate; MyWorkbook.Activesheet.PageSetup.Orientation := xlPortrait; MyWorkbook.Activesheet.PageSetup.PaperSize := xlPaperA4; MyWorkbook.Activesheet.PageSetup.LeftMargin := CMtoPT(1); MyWorkbook.Activesheet.PageSetup.RightMargin := CMtoPT(1); MyWorkbook.Activesheet.PageSetup.TopMargin := cmtopt(1.5); MyWorkbook.Activesheet.PageSetup.BottomMargin := cmtopt(1.5); Range:=ExcelApp.Range['A1','A1']; Range.HorizontalAlignment := xlLeft; Range.VerticalAlignment := xlCenter; END
我有解决scheme:
Range.VerticalAlignment := xlCenter
应该:
Range.VerticalAlignment := integer(xlCenter)
我必须显式转换为整数。 这里是我find它的地方: http : //forums.embarcadero.com/thread.jspa?threadID=106493
我认为,因为你正在使用后期绑定,例如声明ExcelApp
作为olevariant
VAR Myworkbook, range, excelapp : olevariant; Begin ExcelApp:=CreateOleObject('Excel.Application');
然后,您在ExcelApp上调用的不正确的部分将由Excel而不是Delphi来处理。 这意味着HorizontalAlignment是一个不可设置的属性,或者xlLeft在某种方式是不正确的。
这与你的Delphi版本不太可能有关。