2015-01-25 3 views
2

Я только что установил Delphi XE3. Предыдущая версия была XE. Моя программа генерирует файлы Excel (я использую Office 2013). Я импортировал библиотеку типов Excel. Когда я использую Delphi XE, этот код работает. Когда я использую Delphi XE3, тогда у меня появилось сообщение об ошибке: «Свойство HorizontalAlignment не может быть установлено» Что изменилось в XE3?Delphi XE3 Excel не работает как с Delphi XE

Вот код:

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 
+0

Я использую EXCEL_TLB. И он работает в XE. С Excel 2007-2013. Но, что бы вы предложили использовать в любом случае? –

+0

Что это значит? –

+0

Кажется странным. Что такое 'xlLeft'? Какая именно ошибка? –

ответ

0

Я думаю, потому что вы используете позднего связывания, например, Декларирование ExcelApp как olevariant

VAR Myworkbook, range, excelapp : olevariant; 
Begin 
ExcelApp:=CreateOleObject('Excel.Application'); 

Тогда все, что вы звоните на ExcelApp, что неверно обрабатывается с помощью Excel а не Delphi. Это означает, что либо HorizontalAlignment является неприемлемым, либо xlLeft некорректно.

Вряд ли это может быть связано с вашей версией Delphi.

1

У меня есть решение:

Range.VerticalAlignment := xlCenter 

должно быть:

Range.VerticalAlignment := integer(xlCenter) 

я должен преобразовать константу явно в целое число. Вот где я нашел: http://forums.embarcadero.com/thread.jspa?threadID=106493