/* export.i - general Routine to export a Browser to Excel */ /* call: Run excel-export (browser-handle). */ procedure Excel-Export: def input parameter p-browse as handle no-undo. def var h-excel as com-handle no-undo. def var h-book as com-handle no-undo. def var h-sheet as com-handle no-undo. def var v-item as char no-undo. def var v-alpha as char extent 26 no-undo init ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","x","y","Z"]. def var i as int no-undo. def var v-line as int no-undo. def var v-qu as log no-undo. def var v-handle as handle no-undo. v-qu = session:set-wait-state("General"). CREATE "Excel.Application" h-Excel. h-book = h-Excel:Workbooks:Add(). h-Sheet = h-Excel:Sheets:Item(1). do i = 1 to p-browse:num-columns: v-handle = p-browse:get-browse-column(i). v-item = v-alpha[i] + "1". h-sheet:range(v-item):value = v-handle:label. end. v-line = 1. repeat: if v-line = 1 then v-qu = p-browse:select-row(1). else v-qu = p-browse:select-next-row(). if v-qu = no then leave. v-line = v-line + 1. do i = 1 to p-browse:num-columns: v-handle = p-browse:get-browse-column(i). v-item = v-alpha[i] + string(v-line). if v-handle:data-type begins "dec" then assign h-sheet:range(v-item):value = dec(v-handle:screen-value) h-sheet:range(v-item):Numberformat = "###.###.##0,00" h-sheet:range(v-item):HorizontalAlignment = -4152. else if v-handle:data-type begins "int" then assign h-sheet:range(v-item):value = int(v-handle:screen-value) h-sheet:range(v-item):Numberformat = "###.###.##0" h-sheet:range(v-item):HorizontalAlignment = -4152. else h-sheet:range(v-item):value = v-handle:screen-value. end. end. do i = 1 to p-browse:num-columns: v-qu = h-sheet:Columns(i):AutoFit. end. h-excel:visible = yes. release object h-sheet no-error. release object h-book no-error. release object h-excel no-error. v-qu = session:set-wait-state(""). end procedure.