Application Delivery Management
Application Modernization & Connectivity
CyberRes
IT Operations Management
This article describes how to use OLE automation to interact with Excel from COBOL.
Exporting data from COBOL and loading into Excel is possible by simply writing to a line sequential file with comma separated values and then performing a CALL “SYSTEM”. However, a more elegant and powerful solution is to use the OLE automation interface.
Please see the attached ACUCOBOL-GT v8.1 example included in the excel-ole.zip file. In essence you can do the following:
77 excel-app handle of application. 77 excel-doc handle of workbook. 77 excel-sheets handle of sheets. 77 excel-worksheet handle of worksheet. 77 excel-range handle of range. ****************************************************************** PROCEDURE DIVISION. Main Section. * Create the OLE interface create @Application of @Excel handle in excel-app. * Don't show it yet! modify excel-app @Visible = 0. * Use this to create a new excel doc modify excel-app @Workbooks::Add() giving excel-doc. * Use this code block to open an existing excel doc * modify excel-app * @Workbooks::Open("c:\temp\excel-ole\excel.xlsx") * giving excel-doc. * Get the worksheets collection inquire excel-doc sheets() in excel-sheets. * Get the first worksheet inquire excel-sheets item(1) in excel-worksheet. * Get some cells inquire excel-worksheet cells in excel-range. * Lets write something to it modify excel-range Item(1, 1, "Hello"). modify excel-range Item(1, 2, "Cruel"). modify excel-range Item(1, 3, "World"). * Display it modify excel-app @Visible = 1. * Clean up destroy excel-doc. destroy excel-app. destroy excel-sheets. destroy excel-worksheet destroy excel-range * Get me out of here... Exit Program. Stop Run.
Incident Number: 2267067