
Hi all,
My client wants excel report. First i used COM and exported the values to excel.
This was my code.
COM comApplication;
COM comWorkbooks;
COM comWorkbook;
COM comWorksheet;
COM comShapes;
COMVariant variant = new COMVariant();
COMVariant xpos = new COMVariant();
COMVariant ypos = new COMVariant();
COMVariant state = new COMVariant();
COMVariant width = new COMVariant();
COMVariant height = new COMVariant();
SysExcelWorksheet excelWorksheet;
SysExcelCells excelCells;
;
//Create the Excel app and grab the workbooks
comApplication = new COM('Excel.application');
comWorkBooks = comApplication.workbooks();
//Wrap the rest in an exception to make sure excel is closed
try
{
//Create a new workbook and get a reference to it
variant.int(-4167);
comWorkBook = comWorkBooks.add(variant);
comWorkSheet = comApplication.activeSheet();
//Add some text to the worksheet
excelWorksheet = SysExcelWorkSheet::construct(MSOfficeVersion::Office2000, comWorksheet);
excelCells = excelWorksheet.cells();
excelCells.item(10,1).value("Hello world");
//Set up image parameters
variant.bStr("c:\\temp\\companyLogo.bmp");
xpos.int(1);
ypos.int(1);
state.int(1);
width.int(100);
height.int(100);
//Add the image to the worksheet
comShapes = comWorkSheet.shapes();
comShapes.addPicture(variant,xpos,ypos,state,state,width,height);
//Autofitt and protect the sheet
excelworksheet.columns().autoFit();
excelWorksheet.protect('',true,true);
//Save the sheet and close the app
comWorkBook.saveas("c:\\temp\\hello.xls");
comWorkBooks.close();
comApplication.quit();
}
catch(Exception::Error)
{
//Force app to quit
comWorkBook.saveas("c:\\temp\\hello.xls");
comWorkBooks.close();
comApplication.quit();
}
But performance is very very low.
Then i created new AX 2009 report and print the output in File(Excel) rather than Screen.
i.e, this.printjobsettings().setTarget(PrintMedium::file);
I am getting all the values with good performance but i can not able to display my company Logo in excel.
It would be very helpful if anyone could help me on the same.
Thanks in advance.
*This post is locked for comments
I have the same question (0)