Axaptapedia is now maintained by AgileCadence For more information please click here.

Export to Excel/Word - COM-Interface

From Axaptapedia
Jump to: navigation, search

Axapta has subset of classes which can be used for exporting data into Excel via COM in your own way. You can find them in the AOT ( Application Object Tree ), they have 'SysExcel' prefix.

These classes are simply wrappers around COM class.

The following simple example shows how output data about employees into already prepared Excel template. <xpp> static void ExcelAPITestJob(Args _args) {

   SysExcelApplication     excelApp = SysExcelApplication::construct();
   SysExcelWorkSheet       excelWorksheet;
   SysExcelRange           excelRange;
   SysExcelCells           excelCells;
   SysExcelCell            excelCell;
   ComVariant              cellValue = new ComVariant() ;
   EmplTable               empTable;
   int                     i;
   // Open our template file
   excelApp.workbooks().open( 'c:\\tmp\\empl_rep.xlt' );
   // Obtain first worksheet
   excelWorksheet = excelApp.worksheets().itemFromNum( 1 );
   // Obtain cells on that worksheet
   excelCells = excelWorksheet.cells();
   // select data from employee's table and output EmplId and Name into our template
   while select empTable
   {
       excelCells.item( 5 + i, 2 ).value( cellValue.bStr( empTable.EmplId ) );
       excelCells.item( 5 + i, 3 ).value( cellValue.bStr( empTable.Name ) );
       i++;
   }
   excelApp.visible( true );

} </xpp> The example above uses Excel template, you should download it before running that code. To download template file click here (WARNING!!!. You have to replace 'xpo' extension with 'xlt' after downloading it.)

See also SysExcelTemplateWizard