Friday, 24 June 2016

Importing Image from resource node and exporting the same to excel



Importing Image from resource node and exporting the same to excel:


The below is the job to export image from AX to excel file.
static void ExportImageToExcel(Args _args)
{
    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::Office2007, comWorksheet);
        excelCells = excelWorksheet.cells();
        excelCells.item(10,1).value("Hello world");

        //Set up image parameters
        variant.bStr("c:\\temp\\photo.jpg");
        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();
    }
}


The logo in my example I have kept in the path C:\\Temp\image.png and from that path image will be taken by AX and export it to the excel file in the same folder temp.

 


Output:



No comments:

Post a Comment